סדר הקדימות באיתור קבצי הפעלה

כתב ויתור על תוכן KB שהוצא משימוש

מאמר זה נכתב על מוצרים ש- Microsoft כבר לא תומכת בהם. לכן, מאמר זה מוצע "כפי שהוא" והוא לא יעודכן עוד.

סיכום

מאמר זה מתאר את הפעולות הבאות:


  • כיצד COMMAND.COM מחפש קבצי הפעלה
  • סדר קדימות המעורב חיפוש זה
  • כיצד ניתן לעקוף את הסדר בגירסאות MS-DOS 4. x ומעלה
  • התקשר ההבדל ב- filename זיהוי בין COMMAND.COM ומערכת הפעלה של MS-DOS

מידע נוסף

COMMAND.COM

COMMAND.COM באפשרותך להפעיל קובץ המוקלדים בשורת הפקודה או בקובץ אצווה כקו.

בגירסאות הקודמות לגירסה 4.0 של MS-DOS

כאשר צוין שם קובץ, ובין אם לאו סיומת מסופק, COMMAND.COM שומרת את שם הבסיס בלבד. (COMMAND.COM מסיר את סיומת שם הקובץ אם קיימת כזו [לדוגמה, נשאר "קובץ" אם שם הקובץ הוא "קובץ. EXE"]). לאחר שהוא כולל את שם הבסיס, COMMAND.COM נראה בסדר הבא עבור קובץ הפעלה בעל שם זה:

   .COM  .EXE  .BAT

אם קובץ זה לא נמצא COMMAND.COM בספריה הנוכחית בכונן הנוכחי, שהיא מתחילה חיפוש בספריות שצוינה במשתנה הסביבה PATH ב AUTOEXEC. קובץ בת. אם לא נמצא קובץ כזה, תוצג הודעת השגיאה הבאה:
שם הפקודה או קובץ שגוי
לדוגמה, אם ישנם שלושה קבצים בספריה הנוכחית: FILE.COM, הקובץ. EXE, וקובץ. בת ולאחר נסה לבצע בכל אחד מהם על-ידי הקלדת
FILE.COM, קובץ. EXE, קובץ. בת, או קובץ, COMMAND.COM מופעל FILE.COM בלבד, מכיוון שזהו קובץ הראשון שהוא מוצא.

גירסאות MS-DOS 4.0 ואילך

ב- MS-DOS גירסאות 4.0 ואילך, באפשרותך לעקוף את הקדימות COM EXE בת על-ידי הקלדת הפקודה עם הסיומת.


לדוגמה, אם ישנם שלושה קבצים בספריה הנוכחית: FILE.COM, הקובץ. EXE, וקובץ. בת ולאחר נסה לבצע בכל אחד מהם על-ידי הקלדת
FILE.COM, קובץ. EXE, או קובץ. בת, COMMAND.COM מפעילה את אחד שתציין. עם זאת, אם צוין ללא סיומת שם קובץ, שסדר העדיפויות הרגיל משמש (. COM,. EXE, ו. בת).


אפקט בצד אחד של התנהגות זו היא מספר שגוי או בעבורו מספר דרכים של ביצוע קבצים יפסיקו לפעול. לדוגמה, בגירסאות של MS-DOS שקדמו ל- 4.0, באפשרותך להפעיל קובץ. בת על-ידי הקלדת שם הקובץ עם נקודה לאחר שהיא קובץ.. עם זאת, ב- MS-DOS 4.0 ומעלה, אם תקליד קובץ., MS-DOS חיפוש עבור קובץ בשם זה, מוצא אחת ומחזירה את הודעת השגיאה "הפקודה או לקובץ שם שגוי".

גירסאות MS-DOS 5.0 ואילך

גירסאות MS-DOS 5.0 ואילך לחפש קבצים לפי הסדר הבא:

   DOSKEY Macro  .COM  .EXE  .BAT

לדוגמה, אם ישנם שלושה קבצים בספריה הנוכחית: FILE.COM, הקובץ. EXE, וקובץ. בת, וכן יש גם פקודת מאקרו של DOSKEY בשם הקובץ, המאקרו הוא מקבל קדימות ומופעלים בעת הפעלת קובץ מתוך שורת הפקודה של הספריה הנוכחית. זה לא נכון בגירסאות קודמות של MS-DOS, כפי היה לא תכונה מאקרו של DOSKEY.


כמו כן, בגירסאות MS-DOS 5.0 ואילך, פקודות המאקרו של DOSKEY יש קדימות על פני פקודות פנימית. כדי לעקוף את פקודת מאקרו של DOSKEY, הקלד רווח אחד או יותר לפני הפקודה.

הפונקציה EXEC

הפונקציה MS-DOS EXEC (4Bh שירות 21h פסיקה) לא מבינה סיומות שם קובץ; לכן, הוא פשוט מקבלת את השם של הקובץ שצוין בעת שהופעל ומנסה לבצע אותו.


היעדר מידע שם קובץ זה הוא יתרון על תוכניות הכוללות קבצי הפעלה. קבצים כאלה הם מנהלי התקנים (אשר בדרך כלל בעלי הסיומת. SYS) או כיסוי (אשר בדרך כלל בעלי הסיומת. OVL). COMMAND.COM אין אפשרות להפעיל קבצים אלה; רק תוכניות במפורש קריאה לפונקציה EXEC באפשרותך להפעיל תוכניות כאלה.


הפונקציה EXEC מודעת רק את הקבצים ברוב המקרים. COM ו-. סיומות EXE. אין אפשרות לבצע. קבצים בת; קבצים אלה הם במיוחד "לבצע", שורה אחת בכל פעם, על-ידי COMMAND.COM.
מאפיינים:

מזהה פריט: 35284 - סקירה אחרונה: 17 בינו׳ 2017 - תיקון: 1

משוב