Как разрешить "@echo" не является распознанной командой
Я реализовал метод Scott Hanselman для поддержки версии dev/qa/prod для web.config:
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.
Вот файл script:
@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.
Ответы
Ответ 1
Файл, вероятно, кодируется в кодировке Юникод и имеет "Байт Order Mark" (BOM) в начале, который отбрасывает пакетный процессор.
Сохраните его как файл ASCII, и все будет в порядке. Вы можете сделать это в notepad
- выберите Save As...
в меню File
и убедитесь, что выпадающее меню Encoding
установлено на ANSI
.
Ответ 2
Я думаю, что ваш файл закодирован в Юникоде и должен быть ascii.
Ответ 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:\>
Эхо в текущей папке или в пути вызовет это.
/эхо
Ответ 4
Наткнулся на подобную проблему. Найдено, что в visual studio, если вы откроете свой *.bat файл, вы можете выбрать File → Advanced Save Options. В раскрывающемся меню под кодировкой выберите "US-ASCII - Codepage 20127"