close
ข้ามไปเนื้อหา

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 โดยตรง ซึ่งพร้อมใช้งานตลอดเวลา แต่สามารถเรียกใช้ได้เพียงจากอินเทอร์พรีเตอร์คำสั่งโดยตรงเท่านั้น

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

BREAK
ควบคุมการจัดการการขัดจังหวะการทำงานของโปรแกรมโดยการกดปุ่ม Ctrl+C หรือปุ่ม Ctrl+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[1]
TYPE
แสดงเนื้อหาของไฟล์บนคอนโซล
UNLOCK
ปิดใช้งานการเข้าถึงดิสก์ระดับต่ำ (เฉพาะ DOS 7.1 และวินโดวส์ 9x)
VER
แสดงรุ่นของระบบปฏิบัติการ
VERIFY
เปิดหรือปิดการยืนยันการเขียนไฟล์
VOL
แสดงข้อมูลเกี่ยวกับโวลุ่ม

คำสั่งไฟล์ชุดคำสั่ง

[แก้]

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

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

คำสั่ง IF

[แก้]

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

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

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

ข้อจำกัด

[แก้]

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

ดูเพิ่ม

[แก้]

อ้างอิง

[แก้]
  1. 1 2 Paul, Matthias R. (1997-07-30) [1994-05-01]. NWDOS-TIPs — Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds. Release 157 (ภาษาเยอรมัน) (3 ed.). MPDOSTIP. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 4 November 2016. สืบค้นเมื่อ 2014-08-06. (NB. The provided link points to a HTML-converted version of the NWDOSTIP.TXT, which is part of the MPDOSTIP.ZIP collection.)
  2. "Chapter 7: Batch Processing". DR-DOS 7.02 User Guide. Caldera, Inc. 1998. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2017-09-11. สืบค้นเมื่อ 2017-09-11.
  3. Paul, Matthias (1997-05-01) [1993]. BATTIPs — Tips & Tricks zur Programmierung von Batchjobs. MPDOSTIP (ภาษาเยอรมัน). 7: ERRORLEVEL abfragen. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2017-08-23. สืบค้นเมื่อ 2017-08-23. (NB. BATTIPS.TXT is part of MPDOSTIP.ZIP. The provided link points to a HTML-converted older version of the BATTIPS.TXT file.)
  4. Auer, Eric; Paul, Matthias; Hall, Jim (2015-12-24) [2003-12-31]. "MS-DOS errorlevels". คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2015-12-24.
  5. Paul, Matthias (2003) [1997]. Auer, Eric (บ.ก.). "Exitcodes (errorlevels) of DOS utilities". คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2017-09-11. สืบค้นเมื่อ 2017-09-11.
  6. Allen, William; Allen, Linda. "Windows 95/98/ME ERRORLEVELs". คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2005-10-29.
  7. Paul, Matthias (1997-07-01) [1994]. MSDOSTIPs — Tips für den Umgang mit MS-DOS 5.0-7. MPDOSTIP (ภาษาเยอรมัน). คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2017-08-22. สืบค้นเมื่อ 2013-10-25. (NB. MSDOSTIP.TXT is part of MPDOSTIP.ZIP, maintained up to 2001 and distributed on many sites at the time. The provided link points to a HTML-converted older version of the MSDOSTIP.TXT file.)