Яка різниця між .cmd та .bat файлами?


Відповіді:



11

Існують смислові відмінності в мові команд, що використовується для кожного ( .batфайли отримують версію сумісності). Деякі з них можна проілюструвати цим сценарієм звідси :

@echo off&setlocal ENABLEEXTENSIONS
call :func&&echo/I'm a cmd||echo/I'm a bat
goto :EOF

:func
md;2>nul
set var=1

Фактично, .cmdфайли отримують поточну, сексуальну версію мови команд MS, тому класні діти використовують їх.



Так! Я стою виправлений. Я ніколи раніше не знав такої поведінки CMD.EXE.
Еван Андерсон

6

За даними Вікіпедії:

.bat: Перше розширення, яке використовує Microsoft для пакетних файлів. Це розширення може бути запущено в більшості операційних систем Microsoft, включаючи MS-DOS та більшості версій Microsoft Windows.

.cmd: Більше нове розширення .cmd описується системами на базі Windows NT як "Сценарій команд Windows NT" і корисно, оскільки використання розширення .cmd, а не розширення .bat означає, що більш ранні версії Windows не знають, як це зробити запустіть його, щоб вони не намагалися помилитися командами для файлів стилів COMMAND.COM і не запустили команди нового стилю через відсутність розширень команд, в результаті чого сценарії виконуються лише частково, що може виявити шкоду (для Наприклад, не вдалося перевірити успішне копіювання файлу, а потім все-таки видалити оригінал).

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

Сподіваюся, це допомагає.


1

Теоретично .cmd є "вірніше" :), тому що .bat - це сценарій для старого DOS command.com, тоді як .cmd призначений для cmd.exe з Windows NT, останній має трохи вдосконалений сценарій. У реальному житті зазвичай обидва рівні, як написання / bin / sh або / bin / bash в Linux (середні дистрибутиви, де sh насправді баш)


0

Я вперше побачив формат .cmd, що використовується в OS / 2. Якщо ви думаєте в термінах DOS, це як файл .bat на стероїдах. .bat файли були введені спочатку під ОС DOS типу. Багато синтаксису схоже за винятком випадків, коли ви починаєте вступати в розширені функції. Також .cmd файл може не працювати в 16-бітному середовищі (win98), тоді як .bat файл, ймовірно, працює у будь-яких середовищах.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.