Apa perbedaan antara file .cmd dan .bat?

28

Hanya penasaran. Orang-orang "keren" di perusahaan kami selalu menggunakan * .cmd sementara tidak ada yang bisa menjelaskan perbedaannya kepada saya.

Artem Tikhomirov
sumber

Jawaban:

11

Ada perbedaan semantik dalam bahasa perintah yang digunakan untuk masing-masing ( .batfile mendapatkan versi kompatibilitas). Beberapa di antaranya dapat diilustrasikan oleh skrip ini dari sini :

@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

Pada dasarnya, .cmdfile mendapatkan versi terbaru dari bahasa perintah MS, itulah sebabnya anak-anak keren menggunakannya.

kekacauan
sumber
2
<3 skrip cmd dikaburkan :)
grawity
Ya! Saya berdiri dikoreksi. Saya tidak pernah tahu perilaku CMD.EXE sebelumnya.
Evan Anderson
6

Menurut Wikipedia:

.bat: Ekstensi pertama yang digunakan oleh Microsoft untuk file batch. Ekstensi ini dapat dijalankan di sebagian besar Sistem Operasi Microsoft, termasuk MS-DOS dan sebagian besar versi Microsoft Windows.

.cmd: Ekstensi .cmd yang lebih baru dijelaskan oleh sistem berbasis Windows NT sebagai 'Windows NT Command Script' dan sangat membantu, karena menggunakan ekstensi .cmd daripada ekstensi .bat berarti bahwa versi Windows yang lebih lama tidak akan tahu bagaimana caranya. jalankan, sehingga mereka tidak mencoba dan salah mengira perintah untuk file gaya COMMAND.COM dan gagal menjalankan perintah gaya baru karena kurangnya ekstensi perintah, mengakibatkan skrip hanya dijalankan sebagian yang terbukti merusak (untuk contoh; gagal memeriksa penyalinan file yang berhasil dan kemudian menghapus yang asli).

Satu-satunya perbedaan yang diketahui antara pemrosesan file .cmd dan .bat adalah bahwa dalam file .cmd variabel ERRORLEVEL berubah bahkan pada perintah yang berhasil yang dipengaruhi oleh Ekstensi Perintah (ketika Ekstensi Perintah diaktifkan), sedangkan dalam file .bat variabel ERRORLEVEL hanya berubah atas kesalahan.

Semoga ini membantu.

KPWINC
sumber
1

Secara teori .cmd lebih "trueЪ" :) karena .bat adalah skrip untuk command.com DOS lama sementara .cmd untuk cmd.exe dari Windows NT, yang terakhir memiliki skrip yang sedikit lebih baik. Dalam kehidupan nyata biasanya keduanya sama, seperti menulis / bin / sh atau / bin / bash di Linux (berarti distro di mana sh sebenarnya bash)

disserman
sumber
0

Saya pertama kali melihat format .cmd yang digunakan di bawah OS / 2. Jika Anda berpikir dalam istilah DOS, itu seperti file .bat pada steroid. File .bat diperkenalkan pertama kali di bawah DOS tipe OS. Banyak sintaksinya serupa kecuali ketika Anda mulai masuk ke fungsi-fungsi lanjutan. Juga, file .cmd memiliki potensi untuk tidak bekerja di lingkungan 16-bit (win98) sedangkan file .bat mungkin akan berfungsi di semua lingkungan.

Pete
sumber