Command prompt line string limitation - Windows Client | Microsoft Docs

此文大致内容如下:

在windows XP或更高版本, 命令行的最大长度为8191 个字符
在windows2000或windows NT4.0,命令行的最大长度为2047个字符

这个限制对于环境变量同样有效 ,例如 windows XP下,PATH不能超过8191个字符

如果使用cmd运行批处理文件(即.bat),这个限制同样有效

解决方法如下:
将程序的命令行放在一个文本中,程序从这个文本中读取命令行。

对于 javac来说,它的命令行支持 Argument File,在这个Argument File中,可以指定编译选项和文件名,语法如下:
javac @argument_file

原则上,如果这个程序使用cmd执行,那么就会存在这样的限制。

有一点疑问,使用CreateProcess创建的程序还存在这点限制么,查了下MSDN,它是这样描述的:
The maximum length of this string is 32K characters
也就是说,使用CreateProcess创建的程序不存在这样的限制,使用它,命令行的长度可以达到32K个字符
原文链接: https://www.cnblogs.com/hdtianfu/archive/2012/12/06/2804961.html 此工具在 命令行 上接受单个参数: RecursiveDelete foo\bar\node_modules 它将删除指定的文件夹及其所有内容。 为了绕过 Windows API中的 限制 ,我们在树的下方将文件夹重命名为@ ,以缩短路径名,因此不会出现错误,因为路径超过250。 在使用npm时,获得非常深的node_modules目录树并不node_modules目录树的路径 长度 达到400个或更多字符(这是一个)。 尝试使用 Windows 资源管理器删除这些文件夹会导致错误消息,提示路径太长而导致删除成为噩梦。 为了解决这个问题,我编写了这个小巧的天真工具,它仅遍历文件夹结构,在下降树时将每个文件夹重命名为一个字符 长度 的名称,然后在向后移动树时删除所有内容。 我剩下一个名为@的文件夹 有时,文件夹或文件正在使用中(通常由explorer进程使用,但这也可能是防病毒软 命令提示符及批处理下字符串的 最大 长度 : Microsoft Windows XP 或更高版本 : 8191 个字符。 Microsoft Windows 2000 或 Windows NT 4.0 : 2047个字符。 Solution: 将参数放在文本文件中 Link:http://support.microsoft.com/kb/830473 转载于:https://... Windows CMD 命令行 解释器【输入行太长。 命令语法不正确】 这是一个很少见的错误,我在全网搜,大多都是在%CLASSPATH%改成"%CLASSPATH%",但我发现kafka已经帮我们做了这一步了。那为什么我还会报这个错呢? 最后查到了微软的官方文档:https://support.microsoft.com/zh-cn/help/830473/command-prompt-cmd-exe-command-line-string-limitation 使用较短的文件夹和文件的名称 减少文件夹 CreateProcess函数 CreateProcess支持最长32767个字符,这个 限制 来源于UNICODE_STRING结构体。CreateProcess这个API是用于创建进程的核心API,如果你只是关注Win32编程的话,那么你只需要关心这个32767的 长度 限制 就行了。 但如果我们是通过其他方式间接的调动CreateProcess的话,则支持的 命令行 长度 可能在参数传递过程中有所改变。 CMD.EXE命令提示符 理解Microsoft专家认证程序 理解Microsoft认证的不同等级和类型 选择成为MCP(Microsft认证专家)的考试科目 选择成为MCSD的考试科目 选择成为MCT的考试科目 MCSE认证考试的科目 选择合适的MCSE课程组合 核心课程考试 选修课程考试 考试编号的识别 课程内容和考试内容的对照 理解微软的MCSE长远考虑 理解微软出题的方式 使用本书帮助备考 在Internet上寻找对考试有帮助的信息 寻求微软认可的课程指导 寻找高质量的和三方帮助 寻找可利用的评估软件拷贝 报名参加考试 考试的费用问题 考前的自我调整 使用考试中心提供的考试工具 参加模拟测试 熟悉使用计算机进行考试 充分利用考试时间 考题的形式 理解多重选择题型 理解对错题题型 理解多重选择多重答案题型 理解基于解决方案型的问题 理解“建议方法”类型的考题 分析考试结果 准备重新考试 合理安排考试课程的顺序 熟悉 Windows 系列产品 比较 Windows NT Server和NT Workstation 比较 Windows NT Workstaton和 Windows 95 在Windowx 95和 Windows NT Workstation之间作出选择 关于Microsoft Windows NT的70-069号考试:实现和支持Microsoft Windows NT Server 4.0 70-069号考试(实现和支持Microsoft Windows NT Server 4.0)覆盖的内容 Windows NT 4.0界面简介 Windows NT 4.0任务栏(taskbar)的使用 Windows NT回收站简介 Windows NT帐号简介 理解单域模型支持和帐号数量 安全认证号简介 使用管理向导(Administrative Wizards)创建帐号 使用Server Manager(服务器管理器)程序创建计算机帐号 Userver Manager for Domains(域的用户管理器)简介 使用User Mnager for Domains创建用户帐号 刷新用户帐号列表 用户帐号列表的排序 事件查看器(Event View)程序简介 筛选Event Viewer中的事件 授予用户在本地登录的权利 使用 Windows NT诊断程序查看系统配置 激活“ Windows NT Security( Windows NT安全)”对话框 理解登录验证过程 理解访问令牌(Access Token) Windows NT目录服务简介 理解 Windows NT如何构造用户帐号数据库 使用 Windows NT中的Ctrl+Alt+Del组合键 把 Windows NT计算机设置成自动登录 改变 Windows NT口令 用拨号网络登录 复制用户帐号 为简化多个帐号的创建工作而建立用户帐号模板 删除和重新命名用户帐号 理解保护缺省的Administrator帐号的重要性 重新命名管理员帐号 理解缺省的Guest帐户 Windows NT在哪里创建帐号 设置口令 限制 条件 设置用户登录地点 创建宿主文件夹 设置用户登录时间 创建临时用户帐号 重新设置用户帐号口令 修改多个用户帐号 自动注销有时间 限制 的用户 要求用户在下次登录时改变口令 设置帐号规则 设置用户口令永不过期 停用用户帐号 解开登录失败后的用户帐号 Windows NT组简介 理解用户权限和组的访问权限 理解用户和组的权利 分清权限(permission)和权利(right) 设置组成成员关系 理解全局帐号 理解本地帐号 定义Everyone组 Network组的详细说明 Inteactive组的详细说明 Administrators组的详细说明 Guest组的详细说明 Users组的详细说明 Print Operators组的详细说明 Backup Operators(帐户操作员)组的详细说明 Replicator(复制员)组的详细说明 Domain Guests(域客户)组的详细说明 Domain Users(域用户)组的详细说明 Domain Admins(域管理员)组的详细说明 赋予拨号进入权限 理解用户配置文件(User Profile) 为 Windows 用户创建并使用登录脚本文件(Logon Script) 创建漫游式用户配置文件(Roaming User Profile) 创建强制性用户配置文件(Mandatory User Profile) 为用户帐号分配一个配置文件 创建帐户时变量的使用 创建随机初始化口令 理解内建组(Built-in Group) 理解组和策略 设置主组(Primary Group) 理解删除一个组的影响 域控制器(Domain Controller)简介 成员服 感谢 tianmanchn 大佬已经很清晰的说明了kafka在window10上的安装过程 详情:https://blog.csdn.net/tianmanchn/article/details/78943147 在安装的时候可能出现困惑的可能有两个地方,这里指出来,纪念一下为了解决问题逝去的几个小时。 JAVA环境里没有jre 造成原因:JDK11之后没有直接的jre,要用户选择jre模块。(对... windows 命令提示符It can be annoying when you’re using the default Command Prompt window settings and not being able to read everything easily. What you may not know is you can make it wider, and here is ho... 压缩文件的数目适用于所有实际用途,没有 限制 。 <br> * WinRAR 对 RAR 和 ZIP 2.0 格式压缩文件提供完整支持,并可以解压 CAB、 ARJ、LZH、TAR、GZ、ACE、UUE、BZ2、JAR、ISO、Z、7Z 等压缩文件。 <br> * ... 背景:使用 命令行 来修改 windows 命令行 窗口了的大小和屏幕缓冲区的大小(宽度和高度)方法:方法是改注册表。先来看下你可以在 命令行 下直接指定 命令行 窗口的大小了,进到 命令行 执行 mode,可以看到关于控制台的信息如下:设备状态 CON:--------- 行:  300 列:   80 键盘速度: 31 键盘延迟:  1 ... 命令行 长度 限制 是多少?这取决于你问的是谁。CreateProcess函数的最长 命令行 长度 为32767字符。这个 限制 来自于UNICODE_STRING结构。CreateProcess是创建进程的核心函数,所以如果你直接调用该函数,该 限制 是你唯一需要注意的地方。但是如果你通过其他方式间接调用CreateProcess,那么可能会有其他 限制 。如果你使用的是CMD.EXE命令处理器,那么你同样受到CMD... Windows PowerShell 是一种 命令行 外壳程序的脚本环境,它内置在每个受支持的 Windows 版中( Windows 7、 Windows Server2008 R2及更高版本),为 windows 命令行 使用者和脚本编写者利用.NET Framework的强大功能提供了遍历。需要.NET环境支持。 在计算机上运行 Microsoft Windows XP 或更高版本,可以在命令提示符下使用的字符串的 最大 长度 8191 个字符。 在运行 Microsoft Windows 2000 或 Windows NT 4.0 的计算机上, 将 最大 长度 可以在命令提示符下使用的字符串的为 2047 个字符。 此 限制 将适用于命令 (如 PATH 变量中) 的单个环境变量由其他进程中和所有环境变量扩展继...