2012-03-05 43 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 

的一点是这里,所有线路都小于8192个字节解析

+3

一个更简单有效的长行后长为20000位,然后'回声test'。技术上你是正确的,行长度可以超过8191个字符。但我不明白这是有帮助的还是本着原问题的精神。我想可能会有一些场景可能会有用。但是当我读到这个问题时,我认为这是OP感兴趣的帖子解析/功能行长度。 – dbenham 2012-03-08 15:54:05

5

的Windows从XP的所有版本以后支持的8191个字节的最大一批线路长度:http://support.microsoft.com/kb/830473

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

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