COMMAND.COM

COMMAND.COM היא תוכנית בפורמט COM המהווה את המעטפת הסטנדרטית המסופקת עם מערכת ההפעלה DOS. מעטפת זו מבוססת על ממשק שורת פקודה. בהגדרתה, המעטפת אחראית על ממשק המשתמש ואיננה חלק מליבת מערכת ההפעלה. עם זאת, היא חלק אינטגרלי מהמערכת. באופן עקרוני, ניתן להחליף את COMMAND.COM במעטפות של יצרנים אחרים, אך בפועל לא היו נפוצות מעטפות כאלה. תוכנות שסיפקו ממשק משופר (כמו נורטון קומנדר) היו קיימות אמנם, אך הן פעלו מעל COMMAND.COM ולא במקומה. הקובץ COMMAND.COM מופעל בסיומו של תהליך האתחול (boot) על ידי SYSINIT, מודול האתחול של DOS. הוא נטען לזיכרון מעל ליבת המערכת (הקובץ MSDOS.SYS או IBMDOS.COM, בהתאם ליצרן: מיקרוסופט או IBM, בהתאמה) ומבני הנתונים שלה. הקובץ מחולק לשלושה חלקים: חלק תושב (resident) חלק זה שוכן בזיכרון מעל ליבת המערכת. הוא כולל את קוד ברירת המחדל לטיפול באירוע break (לחיצה על CTRL+C) ובשגיאות קריטיות, וכן קוד לסיום מבוקר של תוכניות שהופעלו והחזרת השליטה לחלק הזמני, כולל טעינתו מחדש במקרה הצורך (ראו להלן). חלק אתחול (initialization) עם הפעלת COMMAND.COM בסיומו של תהליך אתחול המערכת, מועברת השליטה לחלק זה. חלק האתחול אחראי להעברת החלק הזמני (להלן) למקומו הקבוע בקצהו העליון של הזיכרון הראשי, וכן להפעלת קובץ האצווה AUTOEXEC.BAT (אם קיים) שהוגדר על ידי המשתמש. לאחר שחלק האתחול מסיים את תפקידו אין בו עוד צורך: הזיכרון שהוקצה לו משוחרר והוא יידרס על ידי התוכנית הראשונה שתופעל. חלק זמני (transient) חלק זה שוכן בקצהו העליון של הזיכרון הראשי. החלק הזמני אחראי לעבודה במצב שורת הפקודה ובמצב עיבוד קובצי אצווה, והוא כולל את כל הקוד של הפקודות הפנימיות. כאשר המשתמש מפעיל תוכנית משורת הפקודה, משוחרר הזיכרון שהוקצה לחלק זה. מרחב הזיכרון ששוחרר עומד לרשותה של התוכנית, העשויה לדרוס אותו במידת הצורך (הדבר איננו מתרחש לעיתים תכופות מכיוון שהחלק הזמני שוכן, כאמור, בקצה הזיכרון הראשי). עם סיום התוכנית והעברת השליטה לחלק התושב (לעיל), מתבצעת בדיקת סיכום ביקורת לשלמות החלק הזמני: אם הוא נותר ללא פגע, השליטה מוחזרת אליו ישירות; אם נדרס, הוא נטען מחדש מהקובץ COMMAND.COM. ב-PC-DOS של IBM כולל COMMAND.COM גם את הקוד של קריאת המערכת 4Bh - EXEC (הפעלת קובץ הרצה). המיקום הספציפי בקובץ תלוי בגרסה. הפקודות הפנימיות הם חלק מובנה מהתוכנית, משמע, הם זמינות למשתמש תמיד ללא תלות בהתקן האחסון, אבל ניתנות להרצה רק מהיישום עצמו (המפרש) ולא מיישומים אחרים. מערכות הפעלה חדשות יותר, דוגמת Windows 9x, תומכות גם בפקודות נוספות אך הן אינן מהוות חלק מובנה מהיישום, אלא נמצאות בתיקייה נפרדת (C:\Windows\Command) ותוכנות ה-DOS השונות יודעות לקרוא גם ממנה. חלק לא קטן מהפקודות קיים גם בסביבת יוניקס, ולכן, מי שמיומן מספיק בשימוש בפקודות יוניקס, יוכל ללמוד ללא בעיה כיצד להשתמש בפקודות האלו. BREAK - משמש לקביעת רמת הרגישות של DOS לאירוע break (לחיצה על צירוף המקשים Ctrl+C או Ctrl+Break). CHCP - אחראי על שינוי ה-Code page של המערכת, שהוא קובץ בפורמט cpi האחראי על קידוד השפה. CHDIR/CD - משמשת לשינוי תיקיית העבודה הנוכחית. CLS - ניקוי המסך. COPY - ביצוע פעולת העתקת קובץ מתיקייה אל תיקייה אחרת, או העתקת תיקייה. הפקודה אינה מעתיקה את תתי התיקיות של התיקייה הנבחרת, במידה וקיימות. CTTY - שינוי הגדרות של יציאות COM לצורכי קלט/פלט. DATE - הצגה או שינוי של התאריך במחשב. DEL/ERASE - מחיקת קובץ או תיקייה. הפקודה אינה מוחקת את תתי התיקיות של התיקייה הנבחרת, במידה וקיימות. DIR - הצגת תוכנה של תיקייה, בדומה לפקודת ls ביוניקס. ECHO - פקודה היכולה לשמש להצגת טקסט, או כפקודת toggle לשליטה על יכולת הצגת טקסט. EXIT - יציאה מממשק שורת הפקודה, וחזרה אל התוכנית שהפעילה אותה. LFNFOR - פקודת toggle לשליטה על הצגת שמות ארוכים המוצגים על ידי פקודת for בקובצי אצווה. LOADHIGH - פקודה לטעינה של תוכנית למקטע הזיכרון העילי. במערכות DOS, מקטע זה הוא המקטע בין הכתובת של ה-640KB לבין הכתובת של ה-1024KB, מעין מרחב בין זיכרון הבסיס של DOS לזיכרון הנוסף. LOCK - אפשור לתוכנות לבצע פעולות ברמה נמוכה בדיסק (MSDOS 7.1 והלאה, Windows 9x). MKDIR/MD - יצירת תיקייה חדשה. PATH - הצגה של משתנה הסביבה %path%, ממנו אפשר לגרום ליישום שורת הפקודה "להכיר" פקודות חיצוניות נוספות מבלי לנווט ישירות לנתיב בו הן מאוחסנות. PROMPT - הצגה של תוכן משתנה הסביבה %prompt%. RENAME/REN - שינוי שם קובץ או תיקייה. RMDIR/RD - מחיקת תיקייה ריקה. SET - הגדרה של משתני סביבה. TIME - הצגה או שינוי של הזמן במחשב. TRUENAME - הצגת הנתיב המלא של קובץ בתיקייה נבחרת. TYPE - הצגת תוכן של קובץ טקסט במסך שורת הפקודה. UNLOCK - הפעולה ההפוכה של פקודת LOCK. ביטול גישה לתוכנות לבצע פעולות ברמה נמוכה על הדיסק (MSDOS 7.1 והלאה, Windows 9x). VER - הצגת גרסת מערכת ההפעלה. VERIFY - הפעלה או ביטול של אפשרות בדיקת תקינות הקובץ בדיסק לאחר ביצוע פעולות כתיבה. VOL - מציג מידע על מחיצה נבחרת בכונן. MSDOS.SYS IO.SYS Microsoft MS-DOS Operating System Programmer's Reference Manual. Microsoft Corp., 1981, 1983. § 3.2