BAT文件中的"输入行太长"错误

Car*_*ssi 62 windows batch-file

我在执行bat文件时遇到问题.经过一段时间后,我得到"输入行太长"的错误.

bat文件的结构很简单.有一个主bat文件调用10个其他bat文件,负责更新我的系统模块的数据.在更新数据bat文件中,我的系统的命令(.cmd文件)有很多调用,负责通过某些计算更新数据.

关键是,当进程在Windows 2003 Server中运行时,它没问题.没有错误.

然后,当它升级到Windows 2008 Server时,我执行主bat文件,几个小时后我得到"输入行太长"错误.我甚至无法在该cmd窗口中手动执行更新的数据蝙蝠中包含的任何命令.但是,如果我关闭cmd窗口并打开一个新窗口,我可以无错误地执行命令.

有人有同样的问题吗?还是解决方案?

提前致谢.

Coo*_*ter 73

我在cmd窗口中执行构建脚本时遇到了同样的问题.大约13次后我得到了同样的错误.构建脚本必须确保运行vcvarsall.bat,以便每次都执行vcvarsall.bat.

vcvarsall.bat不够智能,只能添加东西,path如果它们还没有,那么就会添加一堆重复的条目.

我的解决方案是添加一个if定义的检查环境变量,我知道这是由vcvarsall.bat设置的...

if not defined DevEnvDir (
    call vcvarsall.bat
)
Run Code Online (Sandbox Code Playgroud)

每次运行后检查路径环境变量,看它是否在增长.如果是,并且有重复,你需要聪明地添加东西path.有几种方法可以很聪明.

  • 它始终是cmd脚本中[`SETLOCAL`](https://technet.microsoft.com/en-us/library/bb491001.aspx)的安全措施. (6认同)
  • 我在 Visual Studio 自定义构建步骤/事件中遇到了这些问题,在自定义构建步骤中使用“set PATH=my_bin_dir;%path%”更新了路径变量并解决了问题。 (2认同)

Jim*_*urt 16

刚刚在运行相同的命令集(停止/启动应用程序服务器)多次后,我第一次发生了这个错误.

当我打开一个新命令行并尝试从新命令行控制台执行命令时,错误停止.


小智 9

将文件夹名称重命名为 Kafka 。它对我来说效果很好。关闭cmd并重新启动。那肯定会很好用!

前 : 在此输入图像描述

后 : 在此输入图像描述


Chr*_*ris 7

我意识到这已经很老了,但我遇到的另一个问题是在我打电话的命令末尾有一个"".我试图打电话

"C:\ Program Files(x86)\ Microsoft Visual Studio 12.0\Common7\Tools ..\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe""

如果你注意到,我有两个"在行尾.这导致了我的问题(当我输入引号时,Notepad ++包括它).删除了,一切都很好.再次,可能不是你的问题,但如果有其他人来寻求信息,没有其他工作,检查这个.:)


Jam*_*ess 6

有关于此主题的Windows知识库文章.他们没有提到Windows 2008服务器,但他们确实提到了其他版本操作系统之间的大小差异,因此2003和2008之间存在差异也就不足为奇了.

至于问题的解决方案,他们的一些建议包括:

  • 修改需要长命令行的程序,以便它们使用包含参数信息的文件,然后在命令行中包含该文件的名称.
  • 对文件夹和文件使用较短的名称.
  • 减少文件夹树的深度.

如果你想看看他们还有什么要说的话,你可以阅读整篇文章,但那些看起来最适合你的建议.


Amo*_*til 5

这通常是由于路径较长而发生的。我通过将 Kafka 的基本路径从C:\Program Files<Kafka_path> 替换C:\Kafka解决了这个问题

  • 这解决了我的卡夫卡问题:) (4认同)