命令行的长度限制是多少?

标签: , ,

命令行的长度限制是多少?这取决于你问的是谁。

CreateProcess函数的最长命令行长度为32767字符。这个限制来自于UNICODE_STRING结构。

CreateProcess是创建进程的核心函数,所以如果你直接调用该函数,该限制是你唯一需要注意的地方。但是如果你通过其他方式间接调用CreateProcess,那么可能会有其他限制。

如果你使用的是CMD.EXE命令处理器,那么你同样受到CMD.EXE的长度限制,即8192的命令行长度限制。

如果你正在使用ShellExecute/Ex函数,那么你会受到ShellExecute/Ex函数的长度限制,即不得超过INTERNET_MAX_URL_LENGTH的命令行长度(大约2048字符)(如果你的操作系统为Windows 95,那么该限制为MAX_PATH)

谈到这儿,我还要提到另外一种限制:你所处环境的最大长度为32767字符。环境的最大值包括所有的变量名加上所有的值。

翻译自:What is the command line length limit?

赞赏

微信赞赏支付宝赞赏

随机文章:

  1. _get_osfhandle函数
  2. 外网SSH远程访问OpenWrt
  3. VBS内置函数大全
  4. Ubuntu下安装系统库函数手册
  5. 用C语言调用COM组件

一条评论 发表在“命令行的长度限制是多少?”上

  1. 郑斯彬说道:

    引用:如果你使用的是CMD.EXE命令处理器,那么你同样受到CMD.EXE的长度限制,即8192的命令行长度限制。

    以前刚写代码的时候什么都不懂,调试半天才知道有限制。但是现在,我知道具体长度了,谢谢分享

留下回复