猿问

命令行字符串的最大长度

在Windows中,命令行字符串的最大长度是多少?意思是,如果我指定一个程序,该程序在命令行上接受参数,如abc.exe -name=abc

我编写的一个简单的控制台应用程序通过命令行获取参数,我想知道最大允许量是多少。


PIPIONE
浏览 1610回答 3
3回答

qq_花开花谢_0

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

湖上湖

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

慕森卡

在这个我们看到的地方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不是传递新进程参数的唯一方法。
随时随地看视频慕课网APP
我要回答