מדריך: שורת הפקודה - תגובות
-
@yossiz לא יודע האם עדיין אפשר לשאול אבל מנסה...
ראשית תודה על המדריך היפה הזה! אני מאד מתעניין בזה, בעיקר כי זה פותח אפשרויות ללא גבול [כמעט].
רק שאלה קטנה: אני מנסה בכמה אופנים להריץ 2 פקודות עם הפסק של תו & ביניהם, בכדי להריץ את שניהם. אבל אני שם לב לכך שבCMD זה עובד אבל בצורה של קובץ עם סיומת .BAT , זה מריץ את הראשון אבל רק אחרי שנסגר הראשון מתבצעת הפקודה הבאה. אשמח להבין למה וגם מה בעצם לעשות.
אציין - שמדובר על פקודה פשוטה ממש, של פתיחת 2 תוכנות. כגון הפקודה הבאה: osk & start chrome
[אולי משנה מה הפקודה, אז אני מציין].עריכה - עכשיו אני רואה שבפקודה: start WordPad& notepad זה כן מפעיל את שניהם בסיומת BAT. ולע"ע אני לא מבין את ה'חילוק'.
-
@05484 אפשר לשאול, אם אענה זו כבר שאלה אחרת
הסיפור הוא כזה:
יש שני סוגי תוכנות בווינדוס: תוכנות גרפיות, ותוכנות שורת הפקודה. אפשר לראות את ההבדל, שתוכנות שורת הפקודה נפתחים בתוך חלון שחור של CMD, ותוכנות גרפיות לא.
כאשר אתה משרשר פקודות בשורת הפקודה, אז בעיקרון הם רצים אחד אחרי השני ולא במקביל. ז.א. שבעקרון ה-CMD מחכה לסיום הפקודה הראשונה לפני שהוא יריץ את הפקודה השניה.
כלל זה נכון לגמרי בתוכנות שורת הפקודה, או בפקודות פנימיות של CMD.
תוכנות גרפיות הם יוצאים מן הכלל, ששם ההתנהגות שונה.- אם פתחת חלון CMD אינטראקטיבי, ומתוכה הרצת תוכנה גרפית כלשהו, אז CMD מתנהג כאילו הפקודה הסתיימה מיד כאשר החלון של התוכנה נוצר
- אם הרצת מתוך קובץ BAT, אז אין הבדל בין תוכנה גרפית לתוכנת שורת הפקודה
אם אתה רוצה להריץ תוכנה כלשהו מתוך סקריפט ושהשליטה תחזור מיד לסקריפט בלי לחכות שהתוכנה תסתיים, משתשמים בפקודת
start
שנועד להריץ תוכנה "ברקע" ולחזור מיד להמשך הסקריפט.עכשיו הכל מובן?
-
@05484 אגב, במקרה שלך אני לא חושב שיש ענין לשרשר עם
&
אפשר פשוט לכתוב את הפקודות כל אחת בשורה נפרדת אחת אחרי השניה
משתמשים ב-&
כאשר רוצים שהפודה השניה תרוץ רק אם הראשונה הסתיימה בהצלחה.
מכיון שהראשונה היא תוכנה גרפית במקרה שלך, אין כל כך משמעות לבדוק את ההצלחה של הפקודה.עריכה: הדברים שכתבתי לא נכונים, קורה... ה-
&
הוא במקום מעבר שורה, רק&&
בודק את התוצאה של הפקודה. תודה @צדיק-תמים על התיקון -
@yossiz אמר במדריך: שורת הפקודה - תגובות:
אם הרצת מתוך קובץ BAT, אז אין הבדל בין תוכנה גרפית לתוכנת שורת הפקודה
אם אתה רוצה להריץ תוכנה כלשהו מתוך סקריפט ושהשליטה תחזור מיד לסקריפט בלי לחכות שהתוכנה תסתיים, משתשמים בפקודת start שנועד להריץ תוכנה "ברקע" ולחזור מיד להמשך הסקריפט.
תודה על התשובה! אבל תירצת לי רק חצי קושיא... הבנתי למה START .... פותח את שניהם ברצף.
אבל לא מובן לי עדיין למה הפקודה osk & start chrome למשל, מפעילה את שניהם בCMD, ומשא"כ ב BAT.עוד דבר מעניין ראיתי - שבפקודה הנ"ל בCMD, על אף שהכרום הוא השני בפועל הוא נפתח ראשון, ורק אח"כ נפתח הOSK [מקלדת וירטואלית] וגם זה צריך ביאור. [אבל אולי פרט זה, לא קשור למדריך? עריכה: שוב ראיתי שלכאורה זה תלוי בעניין אחר: שאם כבר פתוח כרום ורק נפתח ע"י הפקודה מופע חדש, אז כרום נפתח קודם, אבל בהפעלה ראשונה - באמת הם עולים לפי הסדר של הפקודה. אז לכאורה לשאלת ה'סדר' הנ"ל אין קשר לסוגיא של 'פקודה'].
עוד שאלה אם אפשר [גם כשקראתי את המדריך המקורי לא הבנתי את הפרט הזה]
@yossiz אמר במדריך: שורת הפקודה - תגובות:אפשר פשוט לכתוב את הפקודות כל אחת בשורה נפרדת אחת אחרי השניה
מה הכוונה? הרי בלחיצה על 'אנטר' מיד מתחיל לרוץ הפקודה.
-
@05484 אמר במדריך: שורת הפקודה - תגובות:
אבל לא מובן לי עדיין למה הפקודה osk & start chrome למשל, מפעילה את שניהם בCMD, ומשא"כ ב BAT.
הסברתי את זה. כי כשמריצים תוכנה גרפית דרך CMD, זה נחשב שהפקודה הסתיימה ברגע שהחלון של התוכנה נוצר. לכן על אף ש-OSK עדיין רץ, בכל זאת ה-CMD ממשיך לפקודה הבאה, אבל ב-BAT זה נחשב סיום הפקודה רק כאשר סוגרים את התוכנה, לכן הוא לא ממשיך מיד לפקודה הבאה.
עוד דבר מעניין ראיתי - שבפקודה הנ"ל בCMD, על אף שהכרום הוא השני בפועל הוא נפתח ראשון
נראה לי שאתה רואה את החלון של כרום ראשון כי מאיזה סיבה יש דיליי קטן לפני שהחלון של OSK מוצג במסך. אבל בסדר הריצה, OSK רץ ראשון.
מה הכוונה? הרי בלחיצה על 'אנטר' מיד מתחיל לרוץ הפקודה.
התכוונתי בקובץ BAT