传递给Delphi控制台应用程序的命令行参数的最大长度

时间:2011-03-04 13:45:37

标签: delphi command-line-arguments

是否有最大限制将字符串传递给Delphi控制台应用程序的时间?我想传递大量的JSON数据。我会用ParamStr(x)函数读取数据。

3 个答案:

答案 0 :(得分:12)

CMD.EXE的最大长度为8192个字符。由于CMD.EXE本身的限制,这将是Delphi控制台应用程序可接收的最大数量。

CreateProcess的最大命令长度为32767个字符。这是由于UNICODE_STRING结构。

ShellExecute / EX仅限于INTERNET_MAX_URL_LENGTH,Gamecat提到的是2047个字符,除非你在Win95上运行;那里的限制只有MAX_PATH。

有关详细信息,请参阅Raymond Chen's blog post

答案 1 :(得分:8)

操作系统的命令行为limited,为2047个字符。

如果要使用更多数据,可以使用文件。

答案 2 :(得分:1)

对于“大量数据”,使用ParamStr可能太有限了。您考虑过使用(anonymous) pipe吗?这是一个起点:

Start two processes and connect them with a pipe in Delphi