9

在 VS2012 的 Windows 7 上,我设置了一个外部工具来调用一个 bat 文件(我们称之为 BatA.bat)。在外部工具中,我将 $(ItemDir) 作为唯一的参数传递,并且我也有 $(ItemDir) 的初始目录。

在 BatA.bat 中,调用运行 BatB.bat,如下所示:

call "%1BatB.bat"

此命令调用 BatB.bat 会在输出窗口中产生以下结果:

'rem' 不是内部或外部命令、可运行程序或批处理文件。

你好

BatB.bat 有以下代码:

rem ***Bat B***
@echo off
echo.
echo hello

奇怪的是,尽管有错误消息,BatB.bat 确实运行并完美执行!

我只是不明白为什么我首先在​​调用 BatB.bat 时收到错误消息......

BatA.bat 和 BatB.bat 都在同一个目录中。我已经尝试在对 BatB.bat 的调用中对路径进行硬编码,并在调用 BatB.bat 之前对 bat 目录执行 cd,但我仍然收到相同的错误。

4

1 回答 1

21

对我来说解决这个问题的最简单方法是在记事本++中打开文件,并在Encoding选项卡下,确保使用最后没有 BOM 的编码。

是 BOM 导致'rem' is not recognized as an internal or external command.......

于 2014-06-25T05:48:14.480 回答