【发布时间】:2016-11-10 07:11:31
【问题描述】:
我想使用Start-Process 从 PS 调用一个程序,并将一堆参数传递给该程序应该在后台处理的调用。
有时可能会发生,提供给该程序的参数的总列表可能有数百个(总共大约 200-300 个),每个 string 的长度最多为 32 个字节。我试图找出-ArgumentList 的最大长度,但到目前为止找不到任何参考。
我怀疑我将提供的参数数量是否会遇到任何问题,但它确实让我感到困扰,-ArgumentList 参数实际上可能有多少个参数或总共多长时间?
【问题讨论】:
-
参数列表是一个对象数组。本身不应该有任何限制。如果你有问题,它们不会来自 number 个参数。
-
@DavidBrabant 我的猜测是,
Start-Process将参数组合成一个用空格和引号格式化的字符串,所以 200-300 * (32 + 1) 大概是 6000-9000 个字符.因此,这将是任何 Windows 命令行可以具有的最大长度,但到目前为止我还没有找到任何资源,所以我认为这可能值得一个堆栈问题。 -
@DavidBrabant 是的,在对 TessellatingHeckler 的回答进行了一些测试之后,我会得出同样的结论。最大长度是 32,767 的总输入字符串,包括程序可执行文件名称 - 至少在 Win10 机器上。
标签: powershell