2014年1月15日水曜日

Windows 実行時、引数の最大長

Windowsでexeを実行する際の引数の最大長について
調べたのでメモ

 Windowsのバージョンによっても違いますが
ここではWindows7以降の話



実行ファイルに渡すことのできる引数の最大長 32767 文字
これはUnicodeの制限から来ています

CMD.EXEからの実行の場合、
実行ファイル名も含めて、 8192文字
CMD.EXEの制限です

C#.net等からProcessを作成する場合、2048文字(たぶん)
UseShellExecute = falseにすればいいという噂もありますが、確認できませんでした



CMD.EXEから8192文字 以上の引数を実行 できないのは
結構ネックです。batファイルが実行できないですから。
CMD.EXEではなく、Shellを変更して,PowerShellやMsysを利用すれば
32767 文字まで利用可能なようです。
なので、batで動かない時はpsに拡張子を変更しましょう。


※長い引数を使うよりは、なるべくファイルで渡すべきですが


0 件のコメント: