Отличия BAT от CMD

Не будем останавливаться на истории языка командных файлов. Рассмотрим чисто практический вопрос- одинаково ли работают файлы с расширением bat и cmd. Оказывается, не всегда!

Для команд PATH/APPEND/PROMPT/SET/ASSOC в файлах с расширением CMD ERRORLEVEL будет установлен вне зависимости от ошибок. В файлах с расширением BAT эти команды устанавливают ERRORLEVEL ТОЛЬКО при ошибке.

Рассмотрим простой пример.

@echo off setlocal ENABLEEXTENSIONS ver>nul echo After the VER command, errorlevel is %errorlevel% md;2>nul echo Using MD incorrectly, errorlevel is %errorlevel% set var=1 echo After setting var, errorlevel is %errorlevel%


Далее сохраним этот текст в файл с расширением bat и в файл с расширением cmd.
Bat файл выдаст результат:

After the VER command, errorlevel is 0 Using MD incorrectly, errorlevel is 1 After setting var, errorlevel is 1


Он же, но с расширением cmd выдаст такой результат:

After the VER command, errorlevel is 0 Using MD incorrectly, errorlevel is 1 After setting var, errorlevel is 0


Как говорится, найдите отличие.

Ну и, наконец, ссылки по теме, в том числе на источники. Более подробно вы можете ознакомится с этим вопросом тут и тут.



Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуется регистрация).



Новый раздел о средствах командной строки в рамках этого же проекта расположен здесь





HTML и CSS
корректный
my counter

Фитотерапия Молитвы Водолечение Юмор Форум Кладовка link О авторе Фитотерапия Молитвы Водолечение Юмор Форум Кладовка Ссылки О авторе Отправить сообщение Карта сайта Поиск по сайту Главная страница