在Windows中,命令行字符串的最大長度是多少?意思是,如果我指定一個程序,該程序在命令行上接受參數,如abc.exe -name=abc我編寫的一個簡單的控制臺應用程序通過命令行獲取參數,我想知道最大允許量是多少。
3 回答

湖上湖
TA貢獻2003條經驗 獲得超2個贊
我做了一些實驗(在c#中使用ProcessStartInfo),而且命令行命令的“參數”字符串似乎僅限于XP中的2048個字符和Win 7中的32768個字符。我不知道8191限制指的是什么,但我還沒有找到任何證據。

慕森卡
TA貢獻1806條經驗 獲得超8個贊
在這個我們看到的地方UNICODE_STRING
..現在讓我們來看看這個結構:
typedef?struct?_UNICODE_STRING?{ ????USHORT?Length; ????USHORT?MaximumLength; ????PWSTR??Buffer; }?UNICODE_STRING;
它用USHORT
(16位長度[0;65535])變量來存儲長度。而根據這,這個,長度表示大小(以字節為單位),而不是字符。所以我們有:65535 / 2 = 32767
(因為WCHAR
是兩個字節長)。
有幾個步驟來挖掘這個數字,但我希望它是明確的。
此外,要支持@sunetos,請回答所接受的內容。8191是允許輸入的最大數目。cmd.exe
如果你超過了這個極限The input line is too long.
產生錯誤。所以,答案是正確的,盡管事實是cmd.exe
不是傳遞新進程參數的唯一方法。
- 3 回答
- 0 關注
- 1674 瀏覽
添加回答
舉報
0/150
提交
取消