Mut*_*pan 9 c# command-line command-line-arguments
语言:C#我必须传递一个巨大的字符串数组(动态构建)作为运行exe的参数.我想通过以下两种方式实现它.但我并不自信.
我可以将它创建为由空格分隔的一个字符串.我可以通过Process.Start调用exe.因此,正在运行的子进程会考虑空间并将其保存为字符串数组.但是我不确定字符串数组的限制.假设我的字符串数组计数超过10,000
我可以将它创建为一个由特殊符号分隔的字符串,该符号永远不会落入数据中.我可以用字符串调用exe.正在运行的子进程将其视为一个单独的字符串,我可以使用相同的分隔符将其拆分以获取字符串数组.但是,在这里我不确定命令大小.如果命令行字符串长度很大,那会这样吗?
任何人都可以帮助我让我知道参数大小限制
Ode*_*ded 19
这取决于操作系统:
请参阅Microsoft支持站点上的命令提示符(Cmd.exe)命令行字符串限制.
在运行Microsoft Windows XP或更高版本的计算机上,您可以在命令提示符处使用的字符串的最大长度为8191个字符.在运行Microsoft Windows 2000或Windows NT 4.0的计算机上,可以在命令提示符处使用的字符串的最大长度为2047个字符.
(强调我的)
关于字符串数组的大小 - 如果字符串数组中有数百万个字符串 - 则主要受可用内存量的限制.
虽然一个坏主意,Process.start
以useshellexecute=false
将调用createprocess()
其允许在命令行32767个字符(虽然这也是对于整个环境块的最大大小)