ความแตกต่างระหว่างไฟล์. 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 เวอร์ชันที่เซ็กซี่กว่าซึ่งเป็นเหตุผลว่าทำไมเด็กที่น่าสนใจจึงใช้มัน


2
<3 cmd cmd ที่ทำให้งงงวย :)
grawity

Yeesh! ฉันยืนแก้ไขแล้ว ฉันไม่เคยรู้พฤติกรรมของ CMD.EXE มาก่อน
Evan Anderson

6

ตามที่ Wikipedia:

.bat: นามสกุลแรกที่ Microsoft ใช้สำหรับไฟล์แบตช์ ส่วนขยายนี้สามารถเรียกใช้ในระบบปฏิบัติการ Microsoft ส่วนใหญ่รวมถึง MS-DOS และ Microsoft Windows รุ่นส่วนใหญ่

.cmd: นามสกุล. cmd ที่ใหม่กว่านั้นอธิบายโดยระบบที่ใช้ Windows NT เป็น 'สคริปต์คำสั่งของ Windows NT' และมีประโยชน์เช่นเดียวกับการใช้ส่วนขยาย. cmd แทนที่จะเป็น. bat ส่วนขยายหมายความว่า Windows รุ่นก่อนหน้าไม่ทราบวิธีการ เรียกใช้เพื่อไม่ให้พยายามและเข้าใจผิดกับคำสั่งสำหรับไฟล์สไตล์ COMMAND.COM และไม่สามารถเรียกใช้คำสั่งสไตล์ใหม่เนื่องจากการขาดส่วนขยายคำสั่งส่งผลให้สคริปต์ทำงานเพียงบางส่วนเท่านั้นซึ่งสามารถพิสูจน์ความเสียหายได้ (สำหรับ ตัวอย่างไม่สามารถตรวจสอบการคัดลอกไฟล์ได้สำเร็จจากนั้นจึงลบต้นฉบับต่อไป)

ความแตกต่างที่ทราบกันเพียงอย่างเดียวระหว่างการประมวลผลไฟล์. cmd และ. bat คือในไฟล์. cmd ตัวแปร ERRORLEVEL จะเปลี่ยนไปแม้กระทั่งในคำสั่งที่ประสบความสำเร็จที่ได้รับผลกระทบจากส่วนขยายคำสั่ง (เมื่อเปิดใช้งานส่วนขยายคำสั่ง) เปลี่ยนเฉพาะเมื่อเกิดข้อผิดพลาด

หวังว่านี่จะช่วยได้


1

ในทางทฤษฎี. cmd นั้นเป็น "trueЪ" มากขึ้น :) เนื่องจาก. bat เป็นสคริปต์สำหรับ DOS command.com เก่าในขณะที่. cmd ใช้สำหรับ cmd.exe จาก Windows NT คนสุดท้ายมีการปรับปรุงสคริปต์เล็กน้อย ในชีวิตจริงมักจะมีค่าเท่ากันเช่นการเขียน / bin / sh หรือ / bin / bash ใน Linux (หมายถึง distros ที่ sh คือ bash จริง)


0

ฉันเห็นรูปแบบ. cmd ครั้งแรกที่ใช้ใน OS / 2 หากคุณกำลังคิดในแง่ของ DOS มันก็เหมือนกับไฟล์. bat บนเตียรอยด์ ไฟล์. bat ถูกนำมาใช้เป็นครั้งแรกภายใต้ระบบปฏิบัติการ DOS type ไวยากรณ์มีจำนวนมากคล้ายกันยกเว้นเมื่อคุณเริ่มเข้าสู่ฟังก์ชั่นขั้นสูง นอกจากนี้ไฟล์. cmd ยังมีโอกาสที่จะไม่ทำงานในสภาพแวดล้อมแบบ 16 บิต (win98) ในขณะที่ไฟล์. bat อาจทำงานได้ในทุกสภาพแวดล้อม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.