在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 關注
- 1713 瀏覽
添加回答
舉報
0/150
提交
取消
