在.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? 有什么办法可以克服这个限制吗?
谢谢!
答案 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。 (注意 - 大多数质疑链接答案准确性的评论早于答案的最新编辑版本。链接的答案现在是正确的。)