2012-09-27 53 views

回答

8

理論上的最大值是2GB的參數。 :-)這是因爲函數中的未映射參數映射到Object數組($args)和.NET 2.0/4.0(安裝了4.5)中的數組可以被索引到Int32.MaxValue。根據我的理解,實際的限制比根據實際的類型稍低。 FWIW我可以在PowerShell中創建128MB大小的對象數組。我認爲參數數量的更現實的限制是命令行長度的限制。在某個時間點cmd.exe有一個max line length of 8191。我不確定PowerShell的最大值是多少,但我想這應該與cmd.exe的最大值相似。另外,如果需要啓動外部進程,那麼這些shell會通過傳遞給進程的命令行的CreateProcess API it has a limit of 32,767 characters

+0

優秀的細節,謝謝! – CIGuy

0

我不知道有任何限制,你有多少人想用?

+0

謝謝,我沒有具體的用例,只是好奇,如果有一個限制(具體考慮批處理文件的9個參數限制)。 – CIGuy