如何解决'@echo'不是公认的命令

时间:2010-12-02 16:41:38

标签: asp.net visual-studio visual-studio-2008

我已经实现了Scott Hanselman的方法来跟上web.config的dev / qa / prod版本: http://www.hanselman.com/blog/CommentView.aspx?guid=93bfa4b3-44cd-4681-b70e-f4a2b0386466

出于某种原因,当我编译项目时,我在输出窗口中收到此错误信息。
有什么想法吗?

------ Build started: Project: ABC.Flims.Web, Configuration: Development Any CPU ------
"C:\Projects\ballyhoo-trunk\src\ABC.Flims.Web\scripts/copyifnewer.bat" "C:\Projects\ballyhoo-trunk\src\ABC.Flims.Web\web.config.Development" "C:\Projects\ballyhoo-trunk\src\ABC.Flims.Web\web.config"
'@echo' is not recognized as an internal or external command,
operable program or batch file.  

这是脚本文件:

@echo off
echo Comparing two files: %1 with %2

if not exist %1 goto File1NotFound
if not exist %2 goto File2NotFound

fc %1 %2 
if %ERRORLEVEL%==0 GOTO NoCopy

echo Files are not the same.  Copying %1 over %2
copy %1 %2 /y & goto END

:NoCopy
echo Files are the same.  Did nothing
goto END

:File1NotFound
echo %1 not found.
goto END

:File2NotFound
copy %1 %2 /y
goto END

:END
echo Done.

4 个答案:

答案 0 :(得分:37)

该文件可能是Unicode编码的,并且在开始时有一个Byte Order Mark(BOM),它会抛弃批处理器。

将其保存为ASCII文件,您应该没问题。您可以在notepad中执行此操作 - 从Save As...菜单中选择File,并确保Encoding下拉列表设置为ANSI

答案 1 :(得分:3)

名为echo的文件。

P:\>echo.


P:\>dir /b echo
File Not Found

P:\>echo echo >echo

P:\>dir /b echo
echo

P:\>echo.
'echo.' is not recognized as an internal or external command,
operable program or batch file.

P:\>del echo

P:\>dir /b echo
File Not Found

P:\>echo.


P:\>

当前文件夹或路径中的回显将导致此。

/回波

答案 2 :(得分:2)

我认为你的文件是Unicode编码的,需要是ascii。

答案 3 :(得分:2)

偶然发现了类似的问题。在visual studio中发现,如果你打开* .bat文件,你可以选择File - >高级保存选项。从编码下的下拉菜单中,选择' US-ASCII - 代码页20127'