xp批处理文件中的行长度限制?

use*_*026 4 windows-xp dos batch-file

在.bat文件中运行long命令时(比如300个字符长度)

例如:

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"  
Run Code Online (Sandbox Code Playgroud)

CMD.exe可以处理的行大小是否有限制?我应该使用.CMD还是.BAT?有什么方法可以克服这个限制吗?

谢谢!

jeb*_*jeb 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
Run Code Online (Sandbox Code Playgroud)

关键在于解析后所有行都小于8192字节

  • 更简单有效的长行是20,000个空格,然后是`echo test`.从技术上讲,你是正确的,行长度可以超过8191个字符.但我不明白这是有用的还是原始问题的精神.我想可能会有一些场景可能会有用.但是当我读到这个问题时,我认为它是OP感兴趣的后解析/功能行长度. (3认同)

dbe*_*ham 5

从XP开始的所有Windows版本都支持最大批处理行长度为8191字节:http://support.microsoft.com/kb/830473

通常,可执行文件通过允许在文件中指定参数值来绕过命令行长度限制.例如,FINDSTR具有/ G:filename选项,该选项指定包含搜索字符串的文件的名称.

关于行长度,.BAT与.CMD之间没有区别.实际上,它们之间几乎没有区别:https://stackoverflow.com/a/148991/1012053.(注意 - 大多数质疑链接答案准确性的评论早于最新编辑的答案版本.链接的答案现在是正确的.)