Dos/פקודת set ו-קובצי אצווה
קבצי אצווה
עריכהמהו קובץ אצווה של MS-DOS?
עריכהעד עכשיו בשביל לשלוח פקודות לDOS היינו צריכים להיכנס לcmd.
קיימים קבצים המכילים פקודות של DOS וכשמפעילים אותם הם שולחים את הפקודות לcmd. קבצים אלו נקראים "קבצי אצווה של MS-DOS" או בWindows 7 "קבצי אצווה של Windows".
יצירת קובץ אצווה פשוט
עריכה
בשביל ליצור קובץ אצווה אנו צריכים עורך טקסט כלשהו (הכי פשוט ונוח הוא Notepad של Microsoft).
נכתוב תוכנית שתציג את הפלט "!Hello world". התוכנית דומה לתוכנית הראשונה שלמדנו עם עוד פקודה שנוסיף.
התוכנית נראית כך:
echo off
echo Hello World
pause
נעבור על כל שורה.
השורה echo off אומרת לDOS לא להציג את המיקום שבו הוא נמצא echo off (פרק 2)
!echo Hello world אומר לDOS להציג את הפלט "!Hello world".
הפקודה pause אומרת לDOS לחכות עד שמקש כלשהו יילחץ ולאחר שנלחץ מקש להמשיך הלאה, במקרה שלנו לסגור את התוכנית.
אם נכתוב את תוכנית ללא pause התוכנית פשוט תכתוב Hello world! ותסגר לפני שנספיק לראות מה קרה.
לאחר שהבנו נוכל לשמור. נכנסים ל"קובץ>>שמירה בשם.." לכתוב בשם התוכנית לדוגמא "hello world.bat" ובסוג הקובץ לשנות לAll files. שימו לב שאתם משנים אחרת המחשב יציג את מה שכתבנו כמסמך טקסט.
כמו שאתם רואים הקובץ שנוצר לנו הוא קובץ bat (קיצור של batch file) שאומר למחשב להפעיל אותו בתוכנית cmd.
עכשיו אפשר להריץ את התוכנית ומה שנקבל יהיה כזה:
Hello world!
Press any key to continue...
הפקודה set ומשתנים
עריכההגדרת משתנים ושימוש בערך שבתוכם
עריכהבפרקים הקודמים השתמשנו בפקודות שכותבות מחרוזות על המסך. מה קורה כשרוצים להכניס קלט מהמשתמש או להכניס מידע כלשהו לתוך משתנה?
הפקודה set מכניסה לתוך משתנה ערך כלשהו (מספר, מחרוזת או תו) שבו היא יכולה להשתמש בהמשך התוכנית.
לדוגמא נרצה להכניס את המספר 5 לתוך תא בשם a ואז להדפיס את הערך שבמשתנה.
התוכנית תראה כך:
echo off
set a=5
echo %a%
pause
בשורה 2 רואים שכשהכנסנו ערך למשתנה כתבנו רק את האות a אך כשאנו מציגים את הערך שבתוכו כתבנו %a%.
DOS יודע שלאחר פקודת echo נמצאת המחרוזת שהוא צריך להציג, אך ברגע שכתבנו %a% הוא יודע שהוא צריך לקרוא את הערך שבמשתנה שבין סימני ה% ולהדפיס אותו. אם היינו כותבים echo a היינו מקבלים כפלט את האות a.
קלט משתמש וטיפול במשתנים
עריכהכמעט כל תוכנית צריכה לקבל קלט מהמשתמש, אם זה מספר, שם או כל דבר אחר. בפקודה set יש אפשרות להכניס למשתנה ערך כלשהו שהמשתמש מכניס.
הפקודה נראית כך:
set /p a=%=%
כמו שאתם רואים, לאחר הפקודה set יש סימון של p/ הסימון אומר לDOS לקבל ערך מהמשתמש ולהכניס אותו לתא a.
אם רוצים להוסיף הודעה לפני הקלט הפקודה תראה כך:
set /p a="Your message:" %=%
מאוד רצוי להוסיף הודעה אחרת המשתמש לא יבין למה הסמן מהבהב.
לאחר שקיבלנו ערך מהמשתמש לפעמים נצטרך "לטפל" בו. בפקודה set יש עוד אפשרות להכניס ערך כלשהו שקשור למשתנים אחרים (או לאותו משתנה).
הפקודה תראה כך:
set /a a=(expression)
שכמובן במקום הexpression אנו נכניס ביטוי כלשהו, לדוגמא:
set /a a=%a%+5
הסבר: התוכנית מכניסה למשתנה a את הערך של a ומוסיפה לו 5 (אם הערך שבמשתנה אינו מספר הערך ישאר כמו שהוא).
עכשיו תורכם: כתוב תוכנית הקולטת 2 מספרים מהמשתמש מחברת את סכומם ומציגה את תרגיל החיבור על המסך. לדוגמא, המשתמש הכניס 5 ו-2 התוכנית תציג 7=5+2 |
עוד על הפקודה set
עריכההפקודה set לבד מחזירה את שמות כל המשתנים ולידו יהיה כתוב את הערך שבתוכו. לדוגמא OS=Windows_NT (כש OS זה שם המשתנה ן Windows_NT זה הערך שלו).
אם נרצה להציג את המשתנים המתחילים באות כלשהי או בביטוי כלשהו נכתוב:
set a
וDOS יציג לנו את שמות כל המשתנים המתחילים באות a. אפשר להחליף את האות a בביטוי כמו com ונקבל את שמות המשתנים ששמם מתחיל בcom.
הרחבות
עריכההרחבה על הפקודה echo off
עריכהלאחר שלמדנו על קבצי אצווה נוכל להוסיף לפקודה echo off את הסימן '@'. משמעות הסימן הזה היא ש-DOS לא יציג את השורה הזאת כשמפעילים את התוכנית. עד עכשיו כשרשמו echo off ראינו את השורה של הפקודה ורק אחרי זה לא הוצג המיקום. כשמשתמשים בecho off@ המחשב לא יציג את המיקום בכלל (אם הפקודה רשומה בהתחלה) ואנחנו מיד נראה רק את מה שרשמנו.
משתנים מיוחדים
עריכהיש לDOS משתנים שמכילים ערכים הקשורים למחשב. ברשימה תוכלו למצוא כמה מהם. אם תרצו את כל המשתנים, פשוט כתבו set בcmd.
לדוגמה רשמו כך: %set /p a=%number_of_processors
שם המשתנה | ערך |
---|---|
OS | שם מערכת ההפעלה |
SystemDrive | הכונן שבו מאוחסנת מערכת ההפעלה |
USERNAME | שם המשתמש הפעיל |
windir | התיקייה בה מאוחסן הWindows |
COMPUTERNAME | שם המחשב |
NUMBER_OF_PROCESSORS | מספר הליבות במעבד |
RANDOM | הפקת מספר רנדומלי |
הפרק הקודם: | פקודת set ו-קובצי אצווה | הפרק הבא: |
---|---|---|
פקודות Dir ו-cd | תרגילים | פקודת cls |