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代码页,你的编辑器等。 修理:
- 使用hex编辑器
- 看看如何表示空间
- search并replace您的表示
我用HxD来search0xA0
到0x20
。