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

时间:2012-03-05 23:21:48

标签: batch-file windows-xp dos

在.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"  

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

谢谢!

2 个答案:

答案 0 :(得分: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

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

答案 1 :(得分:5)

XP以后的所有Windows版本都支持最大批量行长度为8191字节:http://support.microsoft.com/kb/830473

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

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