在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修复,但仍然收到相同的错误。

最佳答案

解决此问题的最简单方法是在notepad ++中打开文件,并在Encoding选项卡下,确保使用末尾没有BOM的编码。

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

08-25 00:34