为了账号安全,请及时绑定邮箱和手机立即绑定

命令行字符串的最大长度

命令行字符串的最大长度

PIPIONE 2019-07-13 14:45:17
在Windows中,命令行字符串的最大长度是多少?意思是,如果我指定一个程序,该程序在命令行上接受参数,如abc.exe -name=abc我编写的一个简单的控制台应用程序通过命令行获取参数,我想知道最大允许量是多少。
查看完整描述

3 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超6个赞

在运行MicrosoftWindowsXP或更高版本的计算机上,可以在命令提示符下使用的字符串的最大长度为8191个字符。


查看完整回答
反对 回复 2019-07-13
?
湖上湖

TA贡献2003条经验 获得超2个赞

我做了一些实验(在c#中使用ProcessStartInfo),而且命令行命令的“参数”字符串似乎仅限于XP中的2048个字符和Win 7中的32768个字符。我不知道8191限制指的是什么,但我还没有找到任何证据。


查看完整回答
反对 回复 2019-07-13
?
慕森卡

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不是传递新进程参数的唯一方法。


查看完整回答
反对 回复 2019-07-13
  • 3 回答
  • 0 关注
  • 1483 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信