5

Предполагая, что мой сценарий оболочки полностью основан на командах DOS (dir, cd и т.д., А не на командах VBS или PowerShell), использование расширения .cmd или .bat для его имени что-то изменит? Я имею в виду, он будет выполняться так же и с тем же интерпретатором, если использовать расширение .cmd или .bat?

1 ответ1

3

Есть хорошо написанный ответ от stackoverflow.

Так что нет, это не влияет на ваши команды. Обработка ОШИБКИ просто отличается. В cmd значение ERRORLEVEL будет установлено независимо от того, есть ошибка или нет.

Bat только делает, если есть ошибка.

Из Википедии:

Новая цитата из Википедии

Единственное известное различие между выполнением файлов .cmd и .bat заключается в том, что в файле .cmd переменная ERRORLEVEL изменяется даже для успешной команды, на которую влияют расширения команд (если включены расширения команд), тогда как в файлах .bat переменная ERRORLEVEL изменяется только при ошибках.

Источник цитаты из Википедии выше основан на сообщениях этой группы.

Различия между.CMD и др.Что касается CMD.EXE, то BAT: с включенными расширениями, PATH/APPEND/PROMPT/SET/ASSOC in.Файлы CMD будут устанавливать ERRORLEVEL независимо от ошибки. ,BAT устанавливает ERRORLEVEL только при ошибках.

Заметьте только, что это немного более ограничительно в отношении различий, чем текст в Википедии, но также заслуживает особого упоминания, учитывая тот факт, что сам Марк Збиковски - что дает ИМХО огромный бонус доверия.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .