Windows 对命令行参数的长度限制

Windows 对命令行参数的长度限制

program.exe file1 file2 ... file10000不起作用。

Windows 对命令行参数的长度有奇怪的限制。它介于 32683 到 32853 个字符之间。还有其他方法可以传递参数吗?

答案1

最实际的解决方案是让你的供应商修复该程序。

如果不这样做,就可以(虽然不容易)挂钩 GetCommandLine 函数,使其返回任意长度的字符串,尽管这可能导致程序崩溃,具体取决于它处理命令行的方式。

答案2

问:“还有其他方法传递参数吗?”

答:是的,传入一个配置文件。让您的程序读取配置文件以获取所有参数。

例如:

========= Start of "C:\MyConfigFile.txt" =========
    file1
    file2
    ...
    file10000
=================== End of File ==================

您的命令:

program.exe "C:\MyConfigFile.txt"

相关内容