กลับไปหน้าบทความ

อ่าน 8 นาที

คอมมานด์.คอม

COMMAND.COM เป็น ตัวแปลคำสั่งบรรทัดคำสั่ง เริ่มต้น สำหรับ MS-DOS , Windows 95 , Windows 98 และ Windows Me ในกรณีของ DOS มันยังเป็นส่วนติดต่อผู้ใช้เริ่มต้นด้วย...

คอมมานด์.คอม

คอมมานด์.คอม
ชื่ออื่นๆพร้อมท์ MS-DOS, ตัวแปลคำสั่ง Windows
นักพัฒนาบริษัท Seattle Computer Products , IBM , Microsoft , The Software Link , Datalight , Novell , Caldera
ปล่อย1980 ( 1980 )
เขียนเป็นภาษาแอสเซมบลีx86 [ 1 ]
ระบบปฏิบัติการ
แพลตฟอร์ม16 บิตx86
ผู้สืบทอดcmd.exe
พิมพ์ตัวแปลคำสั่งบรรทัดคำสั่ง
โปรแกรม COMMAND.COMทำงานในคอนโซลของ WindowsบนWindows 95 (พร้อมท์ MS-DOS)

COMMAND.COMเป็นตัวแปลคำสั่งบรรทัดคำสั่ง เริ่มต้น สำหรับ MS-DOS , Windows 95 , Windows 98และ Windows Meในกรณีของ DOS มันยังเป็นส่วนติดต่อผู้ใช้เริ่มต้นด้วย นอกจากนี้ยังมีบทบาทเป็นโปรแกรมแรกที่ทำงานหลังจากบูต (กระบวนการ init ) ในฐานะเชลล์ COMMAND.COMมีโหมดการทำงานสองโหมดที่แตกต่างกัน ได้แก่โหมดโต้ตอบและโหมดแบตช์คำสั่งภายในคือคำสั่งที่จัดเก็บไว้ภายในไบนารีCOMMAND.COM โดยตรง ดังนั้นจึงพร้อมใช้งานเสมอ แต่สามารถเรียกใช้งานได้โดยตรงจากตัวแปลคำสั่งเท่านั้น [ 2 ]

คำอธิบาย

โปรแกรมที่สืบทอดต่อจากCOMMAND.COM บน ระบบOS/2และWindows NT คือ cmd.exeแม้ว่าจะสามารถใช้งานได้ในเครื่องเสมือน DOSบน ระบบปฏิบัติการเวอร์ชัน IA-32เช่นกัน ชื่อไฟล์ COMMAND.COMยังถูกใช้โดยDisk Control Program (DCP) ซึ่งเป็นโปรแกรมที่พัฒนามาจาก MS-DOS โดย VEB Robotronของเยอรมนีตะวันออกในอดีต[ 3 ]

COMMAND.COMเป็นโปรแกรม DOS โปรแกรมที่เรียกใช้จากโปรแกรมนี้คือโปรแกรม DOS ที่ใช้DOS APIในการสื่อสารกับระบบปฏิบัติการดิสก์ ตัวประมวลผลคำสั่งที่ใช้งานร่วมกันได้ภายใต้FreeDOSบางครั้งก็เรียกว่าFreeCom เช่น กัน

โหมดการทำงาน

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

คำสั่งภายใน

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

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

หยุดพัก
ควบคุมการจัดการการขัดจังหวะโปรแกรมด้วย+ หรือ+ .CtrlCCtrlBreak
ซีเอชซีพี
แสดงหรือเปลี่ยนรหัสหน้า ของระบบปัจจุบัน
ชีดีอาร์ซีดี
เปลี่ยนไดเร็กทอรีการทำงาน ปัจจุบัน หรือแสดงไดเร็กทอรีปัจจุบัน
ซีแอลเอส
ล้างหน้าจอ
สำเนา
คัดลอกไฟล์หนึ่งไปยังอีกไฟล์หนึ่ง (หากไฟล์ปลายทางมีอยู่แล้ว MS-DOS จะถามว่าต้องการแทนที่ไฟล์เดิมหรือไม่) (ดูเพิ่มเติมที่XCOPYซึ่งเป็นคำสั่งภายนอกที่สามารถคัดลอกโครงสร้างไดเร็กทอรีได้เช่นกัน)
ซีทีทีวาย
กำหนดอุปกรณ์ที่จะใช้สำหรับการรับและส่งข้อมูล
วันที่
แสดงและตั้งค่าวันที่ของระบบ
ลบ , ​​ลบออก
คำสั่งนี้ใช้สำหรับลบไฟล์ เมื่อใช้กับไดเร็กทอรี จะลบเฉพาะไฟล์ทั้งหมดที่อยู่ภายในไดเร็กทอรีนั้นเท่านั้น ในทางตรงกันข้าม คำสั่งภายนอกอย่าง DELTREEจะลบทั้งไดเร็กทอรีย่อยและไฟล์ทั้งหมดที่อยู่ภายในไดเร็กทอรีนั้น รวมถึงตัวไดเร็กทอรีเองด้วย
ผู้กำกับ
แสดงรายการไฟล์ในไดเร็กทอรีที่ระบุ
เอคโค่
สลับว่าคำสั่งที่ดำเนินการโดยไฟล์แบตช์จะแสดงบนหน้าจอ ( ECHO ON) หรือไม่ ( ECHO OFF) นอกจากนี้ยังแสดงข้อความบนหน้าจอด้วย ( ECHO text)
ทางออก
ออกจากCOMMAND.COMและกลับไปยังโปรแกรมที่เปิดใช้งานโปรแกรมนี้
แอลเอฟเอ็นฟอร์
เปิดใช้งานหรือปิดใช้งานการแสดงผลชื่อไฟล์ยาวโดย คำสั่ง FOR ( Windows 9x )
โหลดสูง , LH
โหลดโปรแกรมเข้าไปในหน่วยความจำส่วนบน ( HILOADในDR DOS )
ล็อค
อนุญาตให้โปรแกรมภายนอกเข้าถึงข้อมูลระดับต่ำในดิสก์ได้ ( เฉพาะ MS-DOS 7.1และWindows 9xเท่านั้น)
เอ็มเคดีร์ , เอ็มดี
สร้างไดเร็กทอรีใหม่
เส้นทาง
แสดงหรือเปลี่ยนแปลงค่าของตัวแปรสภาพแวดล้อมPATHซึ่งควบคุมตำแหน่งที่COMMAND.COMจะค้นหาไฟล์ปฏิบัติการ
พรอมต์
แสดงหรือเปลี่ยนแปลงค่าของ ตัวแปรสภาพแวดล้อม PROMPTซึ่งควบคุมลักษณะการแสดงผลของข้อความแจ้งเตือน
เปลี่ยนชื่อ , เรน
เปลี่ยนชื่อไฟล์หรือไดเร็กทอรี
อาร์เอ็มดีอาร์ , อาร์ดี
ลบโฟลเดอร์ว่างเปล่า
ชุด
กำหนดค่าให้กับตัวแปรสภาพแวดล้อมหากไม่ระบุอาร์กิวเมนต์ จะแสดงตัวแปรสภาพแวดล้อมทั้งหมดที่กำหนดไว้
เวลา
แสดงและตั้งเวลาของระบบ
ชื่อจริง
แสดงชื่อทางกายภาพที่ขยายอย่างสมบูรณ์ของไฟล์ โดยแก้ไขการแมปไฟล์ระบบเชิงตรรกะASSIGN , JOINและSUBST [ 4 ]
พิมพ์
แสดงเนื้อหาของไฟล์บนคอนโซล
ปลดล็อก
ปิดใช้งานการเข้าถึงดิสก์ระดับต่ำ (เฉพาะ MS-DOS 7.1 และWindows 9x )
เวอร์
แสดงเวอร์ชันของระบบปฏิบัติการ
ตรวจสอบ
เปิดใช้งานหรือปิดใช้งานการตรวจสอบความถูกต้องของการเขียนไฟล์
เล่ม
แสดงข้อมูลเกี่ยวกับปริมาตร

คำสั่งไฟล์แบตช์

โครงสร้างควบคุมส่วนใหญ่ใช้ภายในไฟล์แบตช์ แม้ว่าจะสามารถใช้งานแบบโต้ตอบได้เช่นกัน[ 5 ] [ 4 ]

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

คำสั่ง IF

เมื่อออกจากโปรแกรม คำสั่งภายนอกทั้งหมดจะส่งรหัสส่งคืน (ค่าระหว่าง0ถึง255 ) ไปยังโปรแกรมที่เรียกใช้ โปรแกรมส่วนใหญ่มีข้อกำหนดเฉพาะสำหรับรหัสส่งคืน (เช่น 0 สำหรับการดำเนินการที่สำเร็จ) [ 6 ] [ 7 ] [ 8 ] [ 9 ]

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

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

ตัวแปร

ไฟล์แบตช์สำหรับCOMMAND.COMสามารถมีตัวแปรได้สี่ประเภท:

  • ตัวแปรสภาพแวดล้อม : ตัวแปรเหล่านี้มี รูปแบบ %VARIABLE%และเชื่อมโยงกับค่าต่างๆ ด้วยคำสั่ง SET ก่อน DOS 3 โปรแกรมCOMMAND.COMจะขยายตัวแปรสภาพแวดล้อมได้เฉพาะในโหมดแบตช์เท่านั้น กล่าวคือ ไม่สามารถขยายได้ในโหมดโต้ตอบที่พรอมต์คำสั่ง
  • พารามิเตอร์ทดแทน : พารามิเตอร์เหล่านี้มีรูปแบบ%0 , %1 ... %9และในขั้นต้นจะประกอบด้วยชื่อคำสั่งและพารามิเตอร์บรรทัดคำสั่ง เก้าตัวแรก ที่ส่งไปยังสคริปต์ (เช่น หากคำสั่งที่เรียกใช้คือ `myscript.bat` %0คือ"myscript.bat" , %1คือ"John"และ%2คือ"Doe" ) พารามิเตอร์ทางด้านขวาของตัวที่เก้าสามารถแปลงเป็นช่วงได้โดยใช้คำสั่ง SHIFTmyscript.bat John Doe
  • ตัวแปรลูป: ใช้ในลูป โดยมี รูปแบบ %%aเมื่อรันในไฟล์แบตช์ ตัวแปรเหล่านี้ถูกกำหนดขึ้นเฉพาะภายในคำสั่ง FOR ที่เฉพาะเจาะจง และวนซ้ำไปตามชุดค่าที่กำหนดไว้ในคำสั่ง FOR นั้น
  • ภายใต้Novell DOS 7 , OpenDOS 7.01 , DR-DOS 7.02และเวอร์ชันที่สูงกว่าCOMMAND.COM ยังรองรับ ตัวแปรข้อมูลระบบจำนวนหนึ่ง[ 5 ] [ 10 ] [ 4 ] ซึ่งเป็นคุณสมบัติที่พบก่อนหน้านี้ใน4DOS 3.00และเวอร์ชันที่สูงกว่า[ 11 ]เช่นเดียวกับในMultiuser DOS [ 4 ] แม้ว่าชื่อตัวแปรที่รองรับส่วนใหญ่จะแตกต่างกันก็ตาม

การเปลี่ยนเส้นทาง การเชื่อมต่อ และการเชื่อมโยง

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

command < filename
เปลี่ยนเส้นทางการป้อนข้อมูลมาตรฐานจากไฟล์หรืออุปกรณ์
command > filename
เปลี่ยนเส้นทางการส่งออกมาตรฐานโดยเขียนทับไฟล์เป้าหมายหากมีอยู่แล้ว
command >> filename
เปลี่ยนเส้นทางการส่งออกมาตรฐานโดยเพิ่มข้อมูลลงในไฟล์เป้าหมายหากมีอยู่
command1 | command2
ส่งเอาต์พุตมาตรฐานจากcommand1ไปยังอินพุตมาตรฐานของcommand2
command1command2
คำสั่งที่คั่นด้วย ASCII-20 (¶, เรียกใช้โดย+ ) จะถูกดำเนินการตามลำดับ (การเชื่อมโยงคำสั่ง) [ 4 ]กล่าวอีกนัยหนึ่งคือคำสั่ง command1จะถูกดำเนินการก่อนจนกว่าจะสิ้นสุด จากนั้นจึง ดำเนิน การcommand2 [ 4 ]นี่เป็นคุณสมบัติที่ไม่ได้บันทึกไว้ในCOMMAND.COMของMS-DOS / PC DOS 5.0และสูงกว่า[ 4 ]นอกจากนี้ยังได้รับการสนับสนุนโดยCOMMAND.COMของตระกูล Windows NT เช่นเดียวกับ DR-DOS 7.07 ทุกเวอร์ชันของ DR-DOS COMMAND.COMรองรับฟังก์ชันภายในที่คล้ายกันอยู่แล้วโดยใช้เครื่องหมายอัศเจรีย์ (!) แทน (คุณสมบัติที่ได้มาจากConcurrent DOSและMultiuser DOS เดิม ) - ในบรรทัดผู้ใช้คนเดียว คุณสมบัตินี้มีให้ใช้งานภายในเท่านั้น (ในสคริปต์เริ่มต้นในตัวเช่น "!DATE!TIME") และทางอ้อมผ่าน พารามิเตอร์ $T ของ DOSKEYเพื่อหลีกเลี่ยงปัญหาเกี่ยวกับ ! เป็นอักขระชื่อไฟล์ที่ถูกต้อง[ 4 ] 4DOSรองรับตัวคั่นบรรทัดคำสั่งที่กำหนดค่าได้ ( 4DOS.INI CommandSep= หรือ SETDOS /C) ซึ่งค่าเริ่มต้นคือ ^ [ 11 ] COMMAND.COMใน Windows NT เวอร์ชันใหม่กว่ายังรองรับตัวคั่นเพื่อความเข้ากันได้กับไวยากรณ์ cmd ใน OS/2 และตระกูล Windows NT [ 11 ] (cmd ไม่รองรับตัวคั่น ¶)CtrlT&

ข้อจำกัด

โดยทั่วไป ความยาวของบรรทัดคำสั่งในโหมดโต้ตอบจะจำกัดไว้ที่ 126 อักขระ[ 12 ] [ 13 ] [ 14 ]ในMS-DOS 6.22ความยาวของบรรทัดคำสั่งในโหมดโต้ตอบจะจำกัดไว้ที่ 127 อักขระ

  • ข้อความ "กำลังโหลดCOMMAND.COM " จะปรากฏบน จอแสดงผล HUDของTerminatorและในหน้าต่างแสดงผลภายในของRoboCopเมื่อเขาเริ่มระบบใหม่
  • ในซีรีส์แอนิเมชั่นสำหรับเด็กเรื่องReBootซึ่งดำเนินเรื่องภายในคอมพิวเตอร์ ผู้นำของระบบ (เทียบเท่ากับเมือง) เรียกว่าCOMMAND.COM [ 15 ]

ดูเพิ่มเติม

อ่านเพิ่มเติม

[...] MS-DOS ทุกเวอร์ชันก่อน Windows 95 [...] ใช้ไฟล์ COMMAND.COM ในรูปแบบ COM ซึ่งมีลายเซ็นพิเศษอยู่ที่จุดเริ่มต้นของไฟล์ [...] ซึ่ง BIOS ของ MS-DOS จะสอบถามก่อนที่จะโหลดเชลล์ แต่ไม่ใช่ BIOS ของ DR-DOS [...] COMMAND.COM จะ [...] ตรวจสอบว่ากำลังทำงานอยู่บนเวอร์ชัน DOS ที่ "ถูกต้อง" ดังนั้นหากคุณโหลด COMMAND.COM ของพวกเขาภายใต้ DR-DOS คุณจะได้รับข้อความแสดงข้อผิดพลาด "เวอร์ชันไม่ถูกต้อง" และ COMMAND.COM ของพวกเขาจะปิดตัวลง ดังนั้น DR-DOS จะ [...] แสดงข้อความแสดงข้อผิดพลาด "ตัวแปลคำสั่งไม่ถูกต้องหรือหายไป" (หาก DR-DOS พยายามโหลดตัวประมวลผลคำสั่ง SHELL= หลังจากเสร็จสิ้นการประมวลผล CONFIG.SYS) ในกรณีนี้ คุณสามารถป้อนเส้นทางไปยัง COMMAND.COM ของ DR-DOS ที่ถูกต้อง (C:\DRDOS\COMMAND.COM) และทุกอย่างก็จะเรียบร้อยดี ตอนนี้ สถานการณ์เปลี่ยนไปตั้งแต่ MS-DOS 7.0 แล้ว [...] ไฟล์ COMMAND.COM ภายในกลายเป็นไฟล์สไตล์ EXE ดังนั้นจึงไม่มีลายเซ็นวิเศษ [...] ให้ตรวจสอบ [...] ทำให้ DR-DOS ไม่สามารถตัดความเป็นไปได้ที่ไฟล์ COMMAND.COM จะไม่เข้ากันได้ นอกจากนี้ ไฟล์ COMMAND.COM ของพวกเขายังไม่ทำการตรวจสอบเวอร์ชันอีกต่อไป แต่ [...] ใช้งานไม่ได้ภายใต้ DR-DOS [...] แค่เกิดข้อผิดพลาด [...] ไฟล์ COMMAND.COM ของ PC DOS ทำงานได้ดีภายใต้ DR-DOS [...]

Paul, Matthias R. (17 มิถุนายน 2547). "เรื่อง: การล็อกเครื่องแบบสุ่มใน DR-DOS 7.03" . การประชุม FidoNet : ALT_DOS . สืบค้นเมื่อ28 เมษายน 2562 .{{cite web}}: CS1 maint: บริการเก็บถาวรที่เลิกใช้แล้ว ( ลิงก์ )
  • คูเปอร์, จิม (2001). ฉบับพิเศษโดยใช้ MS-DOS 6.22 (ฉบับที่ 3). สำนักพิมพ์คิว . ISBN 978-0-78972573-8.
  • วูลเวอร์ตัน, แวน (1990). คำสั่ง MS-DOS: คู่มืออ้างอิงฉบับย่อของ Microsoft (ฉบับปรับปรุงครั้งที่ 4). สำนักพิมพ์ Microsoft . ISBN 978-1-55615289-4.
  • ลิงก์ที่เลิกใช้งานแล้วถูกเก็บถาวรเมื่อวันที่ 1 พฤษภาคม 2019 ที่archive.today
  • ลิงก์ที่เลิกใช้งานแล้วถูกเก็บถาวรเมื่อวันที่ 28 เมษายน 2019 ที่archive.today
  • COMMAND1.ASMบนGitHub - ซอร์สโค้ดของ COMMAND.COM เวอร์ชัน A067 ที่ Microsoft เผยแพร่เป็นส่วนหนึ่งของ MS-DOS 4.0
  • COMMAND.ASMบนGitHub – ซอร์สโค้ดของ COMMAND.COM เวอร์ชัน 2.11 ที่ Microsoft เผยแพร่เป็นส่วนหนึ่งของ MS-DOS 2.0
  • COMMAND.ASMบนGitHub – ซอร์สโค้ดของ COMMAND.COM เวอร์ชัน 1.17 ที่ Microsoft เผยแพร่เป็นส่วนหนึ่งของ MS-DOS 1.25
  • FreeCom – การใช้งาน COMMAND.COM บนระบบปฏิบัติการ FreeDOS
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=COMMAND.COM&oldid=1355255823 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ คอมมานด์.คอม

COMMAND.COM เป็น ตัวแปลคำสั่งบรรทัดคำสั่ง เริ่มต้น สำหรับ MS-DOS , Windows 95 , Windows 98 และ Windows Me ในกรณีของ DOS มันยังเป็นส่วนติดต่อผู้ใช้เริ่มต้นด้วย...

คำอธิบาย

โปรแกรมที่สืบทอดต่อจาก COMMAND.COM บน ระบบ OS/2 และ Windows NT คือ cmd.exe แม้ว่าจะสามารถใช้งานได้ใน เครื่องเสมือน DOS บน ระบบปฏิบัติการเวอร์ชัน IA-32 เช่นกัน ชื่อไฟล์ COMMAND.

โหมดการทำงาน

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

คำสั่งภายใน

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