2012-03-05 24 views
4

.BATファイルで長いコマンドを実行している場合には(と言う300文字の長さ)は、例えばxpバッチファイルの行の長さ制限?

Some_exe "C:/Documents and Settings/Some user/Some folder1/Some folder2/Some folder3/Some folder4 ... -Some_exe_arg1="arg 1 name" -Some_exe_arg2="arg 2 name" -Some_exe_arg3="arg 3 name" 

CMD.EXEが処理できるラインサイズに制限はありますか? .CMDまたは.BATを使用する必要がありますか? この制限を克服する方法はありますか?

ありがとうございました!

答えて

6

最大バッチラインの長さの最小が8191でありますバイト!

これは、いずれの場合も8191バイトの行があることを意味しますが、ほぼ無限の長さの有効なバッチ行を作成することもできます。

サンプル

echo Longline with 8191 characters......... 

set "var=a" 
echo UltraLongLine %var:4000chars=% %var:4000chars=% %var:4000chars=% %var:4000chars=% 

echo Test <8000Chars <8000chars <8000chars .... <nul 

はポイントが長い

+3

を解析した後、さらに簡単に有効な長い行は 'エコーtest'続い2万スペースであるすべての行未満8192バイトであることを、ここにあります。技術的には正しいですが、行の長さは8191文字を超えることができます。しかし、私はこれがどのように役立つのか、元の質問の精神に見えません。私は、そのトリックが役に立つかもしれないいくつかのシナリオがあるかもしれないと思います。しかし、私が質問を読んだとき、私はそれがOPが関心を持っているポスト・パース/機能行の長さであると仮定します。 – dbenham

5

XPからのWindowsのすべてのバージョン以降8191バイトの最大バッチラインの長さをサポートしています。http://support.microsoft.com/kb/830473

しばしば実行可能ファイルで指定するパラメータ値を可能にすることによって、コマンドラインの長さの制限を回避します。たとえば、FINDSTRには、検索文字列を含むファイルの名前を指定する/ G:filenameオプションがあります。

行の長さに関して.BATと.CMDの間に違いはありません。実際、それらの間にはほとんど違いはありません。https://stackoverflow.com/a/148991/1012053(注 - 。。リンクの答えの精度に疑問を投げかけ、コメントのほとんどは答えの最新編集されたバージョンに先行リンク答えが正しいです)

関連する問題