BAT文件中的“input行太长”错误

执行bat文件时遇到问题。 经过一段时间的运行,我得到了“input行太长”的错误。

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

问题是,当进程在Windows 2003 Server中运行时,这是可以的。 没有错误。

然后,当它升级到Windows 2008 Server时,我执行主bat文件,几个小时后,我得到了“input行太长”的错误。 我甚至不能在该cmd窗口中手动执行更新的数据棒中包含的任何命令。 但是,如果我closurescmd窗口并打开一个新的我可以执行命令没有错误。

任何人都有同样的问题? 还是解决scheme?

提前致谢。

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

vcvarsall.bat不够聪明,只能添加到path如果他们不在那里,所以一堆重复的条目被添加。

我的解决scheme是添加一个如果定义的检查环境variables,我知道是由vcvarsall.bat设置…

 if not defined DevEnvDir ( call vcvarsall.bat ) 

每次运行后检查你的path环境variables,看看它是否增长。 如果是,并且有重复,则需要聪明地将东西添加到path 。 有几种方法可以做到这一点。

我刚刚在运行同一组命令(停止/启动一个应用程序服务器)后第一次发生这个错误。

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

我意识到这已经很老了,但是我遇到的另一个问题是在我打电话的命令结尾处有一个“”。 我试图打电话

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

如果你注意到,我有两个“在行的末尾,这是我的问题(记事本++包括它,当我键入引号),删除,这一切都好,再次,可能不是你的问题,但如果其他人来寻求信息,没有别的工作,检查这个。:)

有关于此主题的Windows知识库文章 。 他们没有提到Windows 2008服务器,但是他们确实提到了其他版本的操作系统之间的差异,所以2003年和2008年之间的差异就不足为奇了。

至于解决这个问题,他们的一些build议包括:

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

你可以阅读整篇文章,如果你想看看他们还有什么要说的,但这些是最有可能适用于你的build议。

如果你的文件中的空格(ansi字符0x20 )确实是不间断的空格(我有0xA0 ,但是你的可能会有所不同),也会发生这种情况。 如果您从互联网复制/粘贴到支持UTF-8的编辑器,可能会发生这种情况。

结果取决于当前的Windows代码页,你的编辑器等。 修理:

  1. 使用hex编辑器
  2. 看看如何表示空间
  3. search并replace您的表示

我用HxD来search0xA00x20