תוכן עניינים:

קבצי אצווה: כמה יסודות ..: 8 שלבים
קבצי אצווה: כמה יסודות ..: 8 שלבים

וִידֵאוֹ: קבצי אצווה: כמה יסודות ..: 8 שלבים

וִידֵאוֹ: קבצי אצווה: כמה יסודות ..: 8 שלבים
וִידֵאוֹ: Active Directory Essentials: Navigating the Object Database for IT Pros 2024, יוני
Anonim
קבצי אצווה: כמה יסודות…
קבצי אצווה: כמה יסודות…

מדריך זה ילמד אותך כמה יסודות של כתיבת קבצי אצווה, ויראה לך כיצד ליצור משחק ניחוש מספרים עם כמה פיתולים, רק כדי לשמור על דברים מעניינים …

למדתי את רוב כישורי שורת הפקודה שלי, ואת כל כתיבת האצווה שלי מהאינטרנט בכלל, ובאינסטקטבלס בפרט. ברצוני להודות למשתמשי Instructables Neodudeman על ההוראות הנהדרות שלו בכתיבת אצווה. תודה!

שלב 1: מהו קובץ אצווה?

מהו קובץ אצווה?
מהו קובץ אצווה?

ובכן, רוב הקוראים שלי כנראה כבר יודעים מהו קובץ אצווה, אך למקרה ש ….

קובץ אצווה הוא פשוט אוסף (אצווה) של פקודות MSDOS המבוצעות ברצף בעת הפעלת קובץ האצווה. קבצי אצווה מתחילים כקובצי.txt בפנקס הרשימות והופכים לקבצי הפעלה כאשר אתה שומר אותם כמשהו עם סיומת.bat. אז בעצם, כל שעליך לעשות הוא לכתוב קובץ בפנקס הרשימות ולאחר מכן לשמור אותו בשם, למשל, "instructable.bat". לאחר הצבת ה-.bat בסוף שם הקובץ, יופיע קובץ נחמד וחדש, בשם כל מה ששמעת אותו, עם סמל נחמד למראה הילוך. אוקיי, עכשיו כשאנחנו יודעים מה זה קבצי אצווה, בואו נלך לכתוב!

שלב 2: פקודות בסיסיות

פקודות בסיסיות
פקודות בסיסיות
פקודות בסיסיות
פקודות בסיסיות
פקודות בסיסיות
פקודות בסיסיות
פקודות בסיסיות
פקודות בסיסיות

בסדר, תצטרך ללמוד כמה פקודות. אז ראשית, פתח את שורת הפקודה MSDOS. פתח את חלון ההתחלה, לחץ על הפעלה, הקלד "cmd.exe" ולאחר מכן לחץ על הפעלה. ראשית, נבחן משתנים. משתנים הם מספרים, מילים או דברים אחרים, אשר (באופן ברור למדי) משתנים. לשורת הפקודה יש פונקציה משתנה. יש לו כמה משתנים שכבר מוגדרים, כגון TIME, DATE, ועוד כמה. עם זאת, אתה יכול להגדיר את רוב המשתנים. לחץ על חלון שורת הפקודה והקלד: משתנה SET = random זה ממש לא משנה אם אתה משתמש באותיות גדולות של "SET" או לא, אבל אני אוהב לרכוש את כל הפקודות שלי, במיוחד בעת כתיבת קבצי אצווה. זה פשוט מקל עליך לספר מה אתה עושה. עכשיו הקש enter. שמח בשבילך! הגדרת את המשתנה הראשון שלך! אבל מה אנחנו יכולים לעשות עם זה? למי אכפת שכל מה שאנחנו יכולים לעשות זה להגדיר את המשתנה נכון? ובכן, כפי שמתברר, אנו יכולים לעשות הרבה יותר מזה, אך ראשית, ננסה לגרום למחשב לספר לנו כיצד נקבע המשתנה. אוקיי, על מנת לגרום למחשב לקרוא את הערך של משתנה, אנו מקלידים את שם המשתנה, במקרה זה, "משתנה" ושמים את השם בתוך סימני %, כך: %משתנה %. קדימה, הקלד את זה והקש enter:%variable%מוזר שגיאה הא? המחשב אמר ש"המשתנה "אינו מוכר כפקודה פנימית או חיצונית, תוכנית הפעלה או קובץ אצווה." אז למה זה נתן את השגיאה הזו? ובכן, בעצם, זה נתן את השגיאה הזו מכיוון ששורת הפקודה מתייחסת לערך של המשתנה הזה כאילו הקלדת אותו בעצמך. אז כשהקלדת %משתנה %, המחשב חשב שאתה אומר לו לבצע את הפקודה "אקראי". ברור שאנו זקוקים למשהו אחר בכדי לראות את ערך המשתנה שלנו. כאן נכנסת הפקודה ECHO. הפקודה ECHO פשוט אומרת לשורת הפקודה להדהד, או לומר, כל מה שהקלדת אחרי ECHO. לכן, אם אנו מקלידים את הפקודה ECHO לפני המשתנה שלנו, עלינו לקבל את מבוקשנו: משתנה ECHO %שם! עכשיו קיבלנו את מה שאנחנו רוצים! המחשב מדפיס "אקראי". ברור שזהו הערך שהקלדנו עבור המשתנה שלנו, ולכן זו התוצאה שרצינו. בשלב הבא נלמד עוד על משתנים וכיצד נוכל להשתמש בהם.

שלב 3: שימוש בפקודה ובמשתנים SET

שימוש בפקודה ובמשתנים SET
שימוש בפקודה ובמשתנים SET
שימוש בפקודה ובמשתנים SET
שימוש בפקודה ובמשתנים SET

אוקיי, עכשיו כשאנחנו יודעים מה זה משתנים, מה עוד אפשר לעשות איתם? ובכן, אנו יכולים לעשות חשבון, אנו יכולים להשתמש בהם כתנאים לכתיבת תוכניות וקבצי אצווה, אנו יכולים לבצע חשבון בסיסי, אנו יכולים לבצע פקודות, ועוד הרבה יותר. לא ניכנס לכל מה שאתה יכול לעשות עם משתנים, אך נדון בכמה היבטים חשובים של הפונקציה המשתנה. ראשית, הפקודה SET כשלעצמה מייצרת רק משתני מחרוזת. המשמעות היא שזה לא יוסיף או יעשה שום חשבון אחר. אם היית אומר למחשב להוסיף 1 למשתנה עם ערך 1, זה היה נותן לך את הערך 1+1. אם אנחנו רוצים שהוא אכן יוסיף את שני המספרים, עלינו למקם "/a" אחרי הפקודה SET. לכן, אנו מקלידים: SET /a varible = (ערך) כעת, נניח שאנחנו רוצים להכניס משתנה לקובץ האצווה שלנו שהמשתמש יספק. אולי נרצה לעשות זאת אם היינו מחשבים ערכים על פי נוסחה, או במקרה שלנו אם נרצה שהמשתמש ינחש מספר שהמחשב העלה. כדי ליצור משתנה שצוין על ידי משתמש, אנו מוסיפים a /p לאחר הפקודה SET, ומשאירים את השטח אחרי = ריק: משתנה SET /p = הנה! משתנה שצוין על ידי משתמש! אם היינו שמים את השורה הזו בקובץ אצווה, האצווה הייתה פועלת עד שהיא מגיעה לשורה הזו, ואז היא הייתה ממתינה לקלט משתמשים לפני שתמשיך. הדבר המגניב הנוסף ב- /p הוא שהוא שולל לחלוטין את ה /a. כשאנחנו כוללים a /p אנחנו יכולים פשוט להשמיט את ה- /a. הדבר הבא שנלמד עליו מייצר משתנים אקראיים. אם ברצוננו שהמחשב יבחר מספר אקראי למשתנה, אנו פשוט מקלידים את הפקודה SET, ואחריה המשתנה ולאחר מכן מגדירים את המשתנה ל- %RANDOM %. שוב, זה לא צריך להיות הון, אבל אני אוהב לעשות את זה בכל זאת. לכן, אנו מקלידים: משתנה SET /a =%RANDOM%ברור שזהו לא משתנה שצוין על ידי משתמש, לכן אנו כוללים את /a. מגניב! אז עכשיו אנחנו יודעים איך לייצר מספר אקראי! אבל עד כמה זה אקראי? ובכן, מסתבר שהמחשב בוחר מספר בין 0 לאיזשהו מקום סביב 37, 000. אני לא בטוח מה המספר המדויק. אבל מה אם נרצה מספר קטן יותר? נניח, כמו במדריך זה, אנו רוצים מספר הניתן לניהול למשהו כמו משחק ניחושים? ובכן, כאן נכנסת הפקודה IF….

שלב 4: הפקודות IF ו- GOTO. כוח בידיו של כותב האצווה

פקודות IF ו- GOTO. כוח בידיו של כותב האצווה
פקודות IF ו- GOTO. כוח בידיו של כותב האצווה

אז, אנחנו רוצים לייצר מספר הניתן לניהול. נניח שאנחנו רוצים לייצר מספר אקראי בין 1 ל 20. אוקיי, זה קל לומר, אבל ערך ה- RANDOM בוחר מספר בין 1 ל 37, 000. לשם כך נשתמש ב- IF. הפקודה IF אומרת בעצם אם קורה משהו, או אם משהו שווה ערך, או לא שווה ערך מסוים, אז עשו זאת. לכן, IF קובע פקודות מותנות. אנחנו רוצים לייצר מספר שהוא פחות מעשרים, אבל גדול מאחד, ברור שנתחיל עם אמירת המחשב לבחור מספר אקראי, אבל אז נצטרך להיות מסוגל להגיד לו לבחור מספר חדש. מספר אם המספר שהוא בוחר אינו מתאים לדרישותינו. כאן נכנסת הפקודה GOTO. GOTO פשוט אומר למחשב ללכת לתווית מסוימת בקוד. תוויות נראות כך:: pick כל מילה המונחת לאחר נקודתיים הופכת לתווית שאליה נוכל לגשת באמצעות הפקודה GOTO. לכן, אם נרצה לעבור לחלק הקוד עם התווית "לבחור" מעליו, אנו פשוט מקלידים: GOTO pickAlright, אז בואו נמשיך עם הקידוד שלנו. כבר אמרנו למחשב לבחור מספר אקראי, אז הקלדנו: SET /a answer =%RANDOM%עכשיו אנחנו רוצים להוריד את המספר הזה לטווח קטן יותר. אז נפעיל את הפקודה IF. משהו כזה צריך לעשות את העבודה: IF % answer % GTR 20 GOTO pick זה אומר למחשב לבחור GOTO אם התשובה היא גדולה יותר מ 20. נוכל גם לשים כל אחד מהתנאים האלה לפקודה IF: EQU - EqualNEQ - Not EqualLSS - Less ThanGTR - Gantter ThanLEQ - Less Than או שווה ToGEQ - Greater Than או שווה ToTo כך, עם IF, GOTO, תוויות וקיצורים אלה, אנו יכולים לתפעל את קובץ האצווה שלנו בכל דרך שנבחר. אוקיי, אז יש לנו את המספר האקראי שלנו מתחת לעשרים עכשיו, והנה מה שיש לנו עד כה:: pickSET /a answer =%RANDOM%IF%answer%GTR 20 GOTO pickNow, מאפשר לוודא שהמחשב לא ' t בחר 0 לתשובה.:pickSET /תשובה =%RANDOM%IF%answer%GTR 20 GOTO pickIF $ answer%EQU 0 GOTO pickOkay! עכשיו קיבלנו מספר שמיש בין 1 ל 20. בואו נעבור לבשר החבורה.

שלב 5: בשר המשחק שלנו

בשר המשחק שלנו
בשר המשחק שלנו

בסדר, יש לנו את המספר האקראי שלנו. אנחנו גם רוצים לספור כמה ניחושים השחקן שלנו עושה, אז נקבע משתנה נוסף: SET /a guessnum = 0 זה מגדיר את המשתנה geussnum לאפס, ונתנו לו את הפרמטר /a, כך שנוכל להוסיף אליו בכל פעם שהמשתמש מנחש. אוקיי. יש לנו מספר אקראי וקבענו את מספר הניחושים. כעת אנו זקוקים להנחיות מסוימות, ועלינו להכניס קלט משתמש למספר הניחושים. אתה אמור להבין את רוב זה עד עכשיו, אז אני רק אראה לך את הקוד:: beginECHO אני הולך לחשוב על מספרECHO שאני חושב ….. SET /a GuessNum = 0 (ECHO זה שתי השורות ו מגדיר את מספר הניחושים ל- 0): pickASET /a Answer =%RANDOM%IF%Answer%GTR 20 GOTO pickAIF%Answer%EQU 0 GOTO pickAECHO אני חושב על מספר בין 1 ל 20ECHO נחשו איזה מספר אני חושב (סעיף זה לולא עד שהוא מגדיר את המספר האקראי שלנו ולאחר מכן ECHO ההנחיות לשחקן שלנו): RetrySET /p Guess = IF %Guess %LSS %Answer %ECHO המספר שלי גבוה יותר. IF %נחשו %GTR %תשובה % ECHO המספר שלי נמוך יותר. IF%Guess%==%Answer%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO Retry (סעיף זה אומר למחשב לבקש קלט משתמש ולאחר מכן לולאה ברציפות עד שהמשתמש בוחר את לאחר מכן, הוא עובר לתווית END): ENDECHO אתה צודק! התשובה הייתה %Answer %ECHO זה לקח %GuessNum %Guesses. ECHO. PAUSECLSECHO האם תרצה לשחק שוב? ECHO Y /N? SET /p play = IF %play %EQU y GOTO beginIF %play %EQU n GOTO closeIF % play% GTR y GOTO playagainIF% play% LSS y GOTO playagainIF% play% GTR n GOTO playagainIF% play% LSS n GOTO playagain (להלן קטע הסיום שלנו. זה מספר למשתמש כמה ניחושים הוא לקח, ואז שואל אם הוא רוצה לשחק שוב. שים לב שנוכל להשתמש ב- EQU, GTR ו- LSS גם עם אותיות.) אוקיי! אם פשוט תעתיק את הקוד הזה, יהיה לך משחק ניחושים לגיטימי. לא ממש מפואר, אבל היי, זה יותר טוב ממה שרוב האנשים יכולים לעשות. אבל אנחנו הולכים להוסיף טוויסט קטן, רק כדי להפוך את הדברים למעניינים …

שלב 6: הטוויסט

הפיתול
הפיתול
הפיתול
הפיתול
הפיתול
הפיתול

עכשיו, יש לנו משחק עבודה כרגע, אבל אנחנו רוצים להפוך אותו לקצת יותר מעניין. מה דעתך להוסיף קצת תמריץ לשחקן שלנו לנחש את המספר הנכון? מה דעתנו שנעשה משהו כמו.. לכבות את המחשב אם הם לא מנחשים את המספר? זה יהיה די מגניב! אוקיי, עכשיו נוסיף קוד קטן לביצוע השינויים האלה. ראשית, נוסיף שורה לחלק הקוד שסימנו "נסה שוב". אז לך תמצא את הקטע הזה. זה נראה כך:: RetrySET /p Guess = IF%Guess%LSS%Answer%ECHO המספר שלי גבוה יותר. IF%נחש%GTR%ענה%ECHO המספר שלי נמוך יותר. IF%נחשו%==%ענו%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO RetryOkay, אנחנו הולכים להוסיף את השורה הזו מיד אחרי "ECHO". (כאשר אנו שמים נקודה לאחר ECHO, היא משאירה שורה ריקה.) הנה הקוד החדש: IF %GuessNum %EQU 4 GOTO כיבוי G כאשר נוסיף שורה זו, הקטע נראה כך:: RetrySET /p Guess = IF %Guess % LSS%תשובה%ECHO המספר שלי גבוה יותר. IF%מנחש%GTR%ענה%ECHO המספר שלי נמוך יותר. IF%ניחוש%==%תשובה%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1IF%GuessNum%EQU 4 כיבוי GOTO GOTO Retry עכשיו, זה אמור להיות די ברור מה זה עושה. הוא אומר למחשב שאם GuessNum EQUals 4, הוא צריך לעבור לסעיף הקוד שכותרתו "shutdownG". אז מה אנחנו רוצים שסעיף הכיבוי הזה יגיד? ובכן, ברור שצריך לסמן את זה "shutdownG". לאחר מכן, הוא צריך לכבות את המחשב. הפקודה לכיבוי היא "SHUTDOWN -s". זה יכבה את המחשב, אבל אנחנו רוצים להוסיף כמה לפקודה. נוסיף "-f". זה יאלץ את כל התוכניות להיסגר, ונוסיף "-t 60". זה יגיד למחשב להציג חלון ולחכות שישים שניות לסגירה. נוסיף גם "-c" הודעה כאן "". שיציג הודעה בחלון הכיבוי. לאחר פקודת הכיבוי שלנו, נתמודד עם אותו קוד שיש לנו למעלה, הקוד המאפשר לשחקן שלנו לבחור מספרים, ונותן להם משוב. כך שקוד הכיבוי שלנו נראה כך:: shutdown GSHUTDOWN -s -f -t 60 -c "המשיכו לנחש! אם אינכם מנחשים את המספר הנכון, המחשב יכבה!": shutdownG1SET /p נחשו = IF %נחשו %LSS %ענו %ECHO המספר שלי גבוה יותר. IF %נחשו %GTR %תשובה %ECHO המספר שלי נמוך יותר. IF%Guess%==%תשובה%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO כיבוי G1 עכשיו הגדרנו את המחשב ל- SHUTDOWN, והצג הודעה, אך עלינו גם לספר ל- מחשב כדי לעצור את הכיבוי, אם הוא נפתח. אז נוסיף את זה לקטע של קידוד שכותרתו "סוף". קטע זה נראה כך:: ENDIF % GuessNum % GTR 4 SHUTDOWN -aECHO אתה צודק! התשובה הייתה %Answer %ECHO זה לקח %GuessNum %Guesses. ECHO. PAUSECLSECHO האם תרצה לשחק שוב? ECHO Y /N? SET /p play = IF %play %EQU y GOTO beginIF %play %EQU n GOTO closeIF % play% GTR y GOTO playagainIF% play% LSS y GOTO playagainIF% play% GTR n GOTO playagainIF% play% LSS n GOTO playagain אנו רוצים לעצור את הכיבוי, ואנו עושים זאת באמצעות הפקודה "SHUTDOWN -a". אז נוסיף שורה שנראית כך: IF % GuessNum % GTR 4 SHUTDOWN -a נוסיף את הפקודה מיד אחרי התווית, וזה יגיד למחשב להפעיל את הפקודה SHUTDOWN -a רק אם יש לשחקן עשה יותר מארבע ניחושים, והתחיל כיבוי. בסדר! אתה אמור לסיים את המשחק שלך עכשיו! אנו נוודא שאין באגים בשלב הבא.

שלב 7: השלבים האחרונים

צעדים אחרונים
צעדים אחרונים

אוקיי, עכשיו אם חיברת את כל הקידוד הזה, יהיה לך משהו שנראה בערך כך:: beginECHO אני הולך לחשוב על מספרECHO שאני חושב….. SET /a GuessNum = 0: pickASET / a Answer =%RANDOM%IF%Answer%GTR 20 GOTO pickAIF%Answer%EQU 0 GOTO pickAECHO אני חושב על מספר בין 1 ל 20ECHO נחשו מה המספר שאני חושב עליו.:RetrySET /p Guess = IF%לנחש %LSS%תשובה%ECHO המספר שלי גבוה יותר. IF%מניח%GTR%ענה%ECHO המספר שלי נמוך יותר. IF%ניחוש%==%תשובה%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1IF%GuessNum% כיבוי EQU 4 GOTO GGOTO נסה שוב: ENDIF % GuessNum % GTR 4 SHUTDOWN -aECHO אתה צודק! התשובה הייתה %Answer %ECHO זה לקח %GuessNum %Guesses. ECHO. PAUSECLSECHO האם תרצה לשחק שוב? ECHO Y /N? SET /p play = IF %play %EQU y GOTO beginIF %play %EQU n GOTO closeIF % play% GTR y GOTO playagainIF% play% LSS y GOTO playagainIF% play% GTR n GOTO playagainIF% play% LSS n GOTO playagain: closeECHO תודה על המשחק! PAUSEEXIT cmd: כיבוי GSHUTDOWN -s -f -t 60 -c "המשך לנחש ! אם אינך מנחש את המספר הנכון, המחשב יכבה! ": ShutdownG1SET /p Guess = IF % Guess % LSS % Answer % ECHO המספר שלי גבוה יותר. IF % נחשו % GTR % ענו % ECHO המספר שלי הוא Lower. IF%Guess%==%Answer%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO כיבוי G1 זה אמור להיות כל מה שאנחנו צריכים נכון? אז קדימה ושמור את קובץ ה- txt של פנקס הרשימות שיש לך בתור GuessGame.bat. למעשה, אתה יכול לקרוא לזה איך שאתה רוצה, כל עוד אתה שם את העטלף בסוף. אוקיי, אז לחץ על הסמל והפעל את התוכנית! האם זה עבד? טוב בערך. זה עושה דברים מוזרים לא? מסתבר שכאשר אנו כותבים אצווה כזו, שורת הפקודה ECHO כל פקודה שאנו נותנים לה, ממש כאילו הקלדנו אותם בשורת הפקודה. אז המשחק עובד, אבל הוא קצת מבולגן ולא ברור. האם אנחנו יכולים לעשות משהו בנידון? כֵּן! כל שעלינו לעשות הוא להקליד את השורה הזו ממש בתחילת הקוד שלנו: @ECHO OFFT זה אומר למחשב לכבות את ECHO. וסימן @ מתחנן אומר לו לכבות את ה- ECHO עבור כל פקודה. אם היינו משאירים את זה @ בחוץ, אז זה היה מכבה את ה- ECHO רק לפקודה אחת.

שלב 8: הכל נעשה

מזל טוב! בדיוק כתבת משחק קובץ אצווה. די פשוט לא? אם אתה יכול להתמודד עם זה, תוכל להבין כיצד לעשות לא מעט עם קבצי אצווה. פשוט שחק עם זה, עשה כמה ניסויים. למקרה שלא תוכל לגרום למשהו לעבוד, או למקרה שהשארתי משהו בכל הקידוד הזה, אני אתן לך את הקובץ כאן.

מוּמלָץ: