在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 关注
- 1582 浏览
添加回答
举报
0/150
提交
取消