Просто любопытно. «Крутые» люди в нашей компании всегда используют * .cmd, в то время как никто не смог объяснить мне разницу.
windows
batch-file
windows-command-prompt
Артем Тихомиров
источник
источник
Есть семантические различия в языке команд, используемых для каждого (
.bat
файлы получают версию совместимости). Некоторые из них могут быть проиллюстрированы этим скриптом отсюда :По сути,
.cmd
файлы получают текущую, более сексуальную версию командного языка MS, поэтому крутые парни используют их.источник
Согласно Википедии:
.bat: первое расширение, используемое Microsoft для пакетных файлов. Это расширение может работать в большинстве операционных систем Microsoft, включая MS-DOS и большинство версий Microsoft Windows.
.cmd: более новое расширение .cmd описывается системами на базе Windows NT как «командный сценарий Windows NT» и полезно, поскольку использование расширения .cmd вместо расширения .bat означает, что более ранние версии Windows не будут знать, как запустите его, чтобы они не пытались и не принимали команды за файлы стилей COMMAND.COM и не запускали команды нового стиля из-за отсутствия расширений команд, в результате чего скрипты выполняются только частично, что может привести к повреждению (для пример: не удается проверить успешное копирование файла, а затем удалить оригинал в любом случае).
Единственная известная разница между обработкой файлов .cmd и .bat заключается в том, что в файле .cmd переменная ERRORLEVEL изменяется даже для успешной команды, на которую влияют расширения команд (если включены расширения команд), тогда как в файлах .bat переменная ERRORLEVEL изменяется только при ошибках.
Надеюсь это поможет.
источник
Теоретически .cmd является более «истинным» :), потому что .bat - это сценарий для старой DOS command.com, в то время как .cmd - для cmd.exe из Windows NT, в последнем есть немного улучшенные сценарии. В реальной жизни, как правило, оба равны, как в / Linux / bin / sh или / bin / bash (имеется в виду дистрибутив, где sh на самом деле bash)
источник
Я впервые увидел формат .cmd, используемый в OS / 2. Если вы думаете в терминах DOS, это похоже на файл .bat на стероидах. Файлы .bat были впервые представлены под ОС типа DOS. Синтаксис во многом похож, за исключением случаев, когда вы начинаете изучать расширенные функции. Кроме того, файл .cmd может не работать в 16-разрядной среде (win98), тогда как файл .bat, вероятно, будет работать во всех средах.
источник