COMMAND.COM

**COMMAND.COM** เป็นอินเทอร์พรีเตอร์บรรทัดคำสั่งปริยายสำหรับระบบปฏิบัติการดอส วินโดวส์ 95 วินโดวส์ 98 และวินโดวส์มี และเป็นส่วนติดต่อผู้ใช้ปริยายในดอส โดยมีหน้าที่เพิ่มเติมคือตั้งค่าระบบโดยเรียกใช้ไฟล์การกำหนดค่า AUTOEXEC.BAT เมื่อโปรแกรมแรกเริ่มทำงานหลังจากบูตระบบ รวมถึงทำหน้าที่เป็นต้นกำเนิดของกระบวนการทั้งหมดด้วย COMMAND.COM รุ่นใหม่บนระบบปฏิบัติการโอเอส/2 และวินโดวส์เอ็นทีจะเป็น cmd.exe ถึงแม้ว่า COMMAND.COM จะพร้อมใช้งานบนระบบปฏิบัติการเหล่านั้นซึ่งเป็นรุ่น IA-32 ก็ตาม

COMMAND.COM เป็นโปรแกรมดอส โปรแกรมที่เรียกใช้จาก COMMAND.COM จะเป็นโปรแกรมดอสที่ใช้ MS-DOS API ในการสื่อสารข้อมูลกับระบบปฏิบัติการ (ดอส)

## โหมดการทำงาน
COMMAND.COM มีโหมดการทำงานอยู่ด้วยกันสองโหมดในรูปแบบเชลล์ โดยโหมดแรกจะเป็นโหมดแบบโต้ตอบ ซึ่งสำหรับดำเนินการคำสั่งที่ผู้ใช้พิมพ์โดยทันที โหมดที่สองจะเป็นโหมดแบบกลุ่ม ซึ่งดำเนินการลำดับคำสั่งที่กำหนดไว้ล่วงหน้าซึ่งถูกเก็บไว้เป็นไฟล์ข้อความที่มีนามสกุลไฟล์ .BAT

## คำสั่งภายใน

คำสั่งภายในเป็นคำสั่งที่บรรจุไว้ภายในไบนารีของ COMMAND.COM โดยตรง ซึ่งพร้อมใช้งานตลอดเวลา แต่สามารถเรียกใช้ได้เพียงจากอินเทอร์พรีเตอร์คำสั่งโดยตรงเท่านั้น

คำสั่งทั้งหมดจะถูกดำเนินการหลังจากกดปุ่ม  ที่ท้ายบรรทัดคำสั่ง โดยคำสั่งใน COMMAND.COM จะไม่คำนึงถึงตัวอักษรพิมพ์ใหญ่-เล็ก หมายความว่าสามารถพิมพ์คำสั่งได้โดยจะเป็นตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็กก็ได้

; BREAK: ควบคุมการจัดการการขัดจังหวะการทำงานของโปรแกรมโดยการกดปุ่ม  หรือปุ่ม 
; CHCP: แสดงข้อมูลหรือเปลี่ยนโค้ดเพจปัจจุบันของระบบ
; CHDIR, CD: เปลี่ยนไดเรกทอรีการทำงานปัจจุบันหรือแสดงไดเรกทอรีปัจจุบัน
; CLS: ล้างหน้าจอ
; COPY: คัดลอกไฟล์จากต้นทางไปยังปลายทาง (หากมีไฟล์ปลายทางอยู่แล้ว ดอสจะถามว่าต้องการแทนที่ไฟล์ดังกล่าวหรือไม่) (ดูเพิ่มเติมที่ XCOPY คำสั่งภายนอกซึ่งสามารถคัดลอกทรีไดเรกทอรีได้ด้วย)
; CTTY: กำหนดอุปกรณ์ที่จะใช้สำหรับส่วนนำเข้าและแสดงผล
; DATE: แสดงผลและตั้งค่าวันที่ของระบบ
; DEL, ERASE: ลบไฟล์ เมื่อใช้กับไดเรกทอรี จะลบเฉพาะไฟล์ที่อยู่ในไดเรกทอรีดังกล่าว ส่วนคำสั่งภายนอก DELTREE จะลบทั้งไดเรกทอรีย่อยและไฟล์ที่อยู่ในไดเรกทอรีดังกล่าว รวมทั้งลบไดเรกทอรีดังกล่าวออกด้วย
; DIR: แสดงรายชื่อไฟล์ที่อยู่ในไดเรกทอรีที่ระบุ
; ECHO: เปิด/ปิดการแสดงผลข้อความ (ECHO ON หรือ ECHO OFF) หรือแสดงผลข้อความบนหน้าจอ (ECHO text)
; EXIT: ออกจาก COMMAND.COM และกลับไปที่โปรแกรมที่เรียกใช้
; LFNFOR: เปิดหรือปิดใช้งานการส่งกลับชื่อไฟล์แบบยาวโดยคำสั่ง FOR (วินโดวส์ 9x)
; LOADHIGH, LH: โหลดโปรแกรมเข้าไปในเขตปฏิบัติการหน่วยความจำสูง (HILOAD ใน DR DOS)
; LOCK: เปิดให้โปรแกรมภายนอกเข้าถึงโวลุ่มดิสก์ระดับต่ำ (เฉพาะ DOS 7.1 และวินโดวส์ 9x)
; MKDIR, MD: สร้างไดเรกทอรีใหม่
; PATH: แสดงผลหรือเปลี่ยนค่าของตัวแปรสภาพแวดล้อม PATH ซึ่งควบคุมสถานที่ที่ COMMAND.COM ใช้สำหรับค้นหาไฟล์ปฏิบัติการ
; PROMPT: แสดงผลหรือเปลี่ยนค่าของตัวแปรสภาพแวดล้อม PROMPT ซึ่งควบคุมการปรากฏของพร้อมท์
; REN, RENAME: เปลี่ยนชื่อไฟล์หรือไดเรกทอรี
; RMDIR, RD: ลบไดเรกทอรีว่างเปล่า
; SET: กำหนดค่าของตัวแปรสภาพแวดล้อมโดยไม่มีอาร์กิวเมนต์ รวมถึงแสดงตัวแปรสภาพแวดล้อมที่กำหนดไว้ทั้งหมด
; TIME: แสดงผลและตั้งค่าเวลาของระบบ
; TRUENAME: แสดงชื่อจริงเต็มของไฟล์ โดยแปลงที่อยู่การแมประบบไฟล์แบบลอจิคัล ASSIGN, JOIN และ SUBST
; TYPE: แสดงเนื้อหาของไฟล์บนคอนโซล
; UNLOCK: ปิดใช้งานการเข้าถึงดิสก์ระดับต่ำ (เฉพาะ DOS 7.1 และวินโดวส์ 9x)
; VER: แสดงรุ่นของระบบปฏิบัติการ
; VERIFY: เปิดหรือปิดการยืนยันการเขียนไฟล์
; VOL: แสดงข้อมูลเกี่ยวกับโวลุ่ม

## คำสั่งไฟล์ชุดคำสั่ง
โครงสร้างการควบคุมมักจะถูกใช้ภายในไฟล์ชุดคำสั่ง ถึงแม้ว่าจะสามารถใช้โครงสร้างเหล่านั้นแบบโต้ตอบได้ก็ตาม

; *label*: กำหนดเป้าหมายสำหรับ GOTO
; CALL: ดำเนินการไฟล์ชุดคำสั่งถัดไปก่อน แล้วจึงกลับมาที่ไฟล์แรกและดำเนินการต่อ
; FOR: การทำซ้ำ: ทำซ้ำคำสั่งสำหรับแต่ละชุดของไฟล์
; GOTO: ย้ายการดำเนินการไปยังป้ายชื่อที่ระบุ ป้ายชื่อจะถูกระบุที่ต้นบรรทัด พร้อมด้วยเครื่องหมายทวิภาค (:likethis).
; IF: คำสั่งแบบเงื่อนไข ใช้ในการจำแนกคำสั่งในการดำเนินการโปรแกรม
; PAUSE: หยุดการดำเนินการโปรแกรมและแสดงข้อความแจ้งผู้ใช้ให้กดปุ่มใดก็ได้เพื่อดำเนินการต่อ
; REM: คอมเมนต์: ละเว้นข้อความใด ๆ ที่อยู่หลังคำสั่งนี้
; SHIFT: แทนที่พารามิเตอร์การแทนที่แต่ละค่าด้วยค่าถัดไป (เช่น %0 ด้วย %1, %1 ด้วย %2 ฯลฯ)

## คำสั่ง IF
เมื่อจะจบการทำงาน คำสั่งภายนอกทั้งหมดจะต้องส่งรหัสการส่งกลับ (เป็นค่าระหว่าง 0 ถึง 255) ไปยังโปรแกรมที่เรียก โดยโปรแกรมส่วนใหญ่จะมีแบบแผนบางอย่างสำหรับรหัสการส่งกลับนั้นด้วย (ตัวอย่างเช่น ค่า 0 สำหรับการดำเนินการที่สำเร็จ)

หากมีโปรแกรมใด ๆ ถูกเรียกโดย COMMAND.COM คำสั่งภายใน IF พร้อมคำสั่งแบบเงื่อนไข ERRORLEVEL จะสามารถนำมาใช้ทดสอบเงื่อนไขข้อผิดพลาดของโปรแกรมภายนอกที่เรียกล่าสุดได้

คำสั่งภายในจะไม่สร้างค่าใหม่ภายใต้ COMMAND.COM

## ข้อจำกัด
ความยาวบรรทัดคำสั่งในโหมดแบบโต้ตอบจะถูกจำกัดไว้ที่ 126 ตัวอักษร

## ดูเพิ่ม
* %COMSPEC%
* %CMDLINE%
* รายชื่อคำสั่งดอส
* การเปรียบเทียบเชลล์คอมพิวเตอร์

## อ้างอิง

หมวดหมู่:ภาษาสคริปต์
หมวดหมู่:ไฟล์ดอส
หมวดหมู่:คำสั่งดอสภายนอก
หมวดหมู่:เชลล์คำสั่ง