【问题标题】:Line length limit in xp batch file?xp批处理文件中的行长限制?
【发布时间】:2012-03-23 10:56:32
【问题描述】:

在 .bat 文件中运行长命令时(比如 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? 有什么办法可以克服这个限制吗?

谢谢!

【问题讨论】:

    标签: batch-file windows-xp dos


    【解决方案1】:

    最大批处理行长度的最小值是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字节

    【讨论】:

    • 更简单的有效长行是 20,000 个空格,后跟 echo test。从技术上讲,您是正确的,行长可以超过 8191 个字符。但我看不出这有什么帮助,也不符合原始问题的精神。我想在某些情况下这个技巧可能有用。但是当我阅读这个问题时,我认为它是 OP 感兴趣的后解析/功能行长度。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2010-12-02
      • 2020-06-15
      • 2018-10-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-04
      • 2023-03-26
      • 2010-10-24
      • 2013-06-22
      相关资源
      最近更新 更多