דף 1 מתוך 1

עזרה בכתיבת BATCH FILE

נשלח: ו' נובמבר 05, 2010 2:17 pm
על ידי dj_anubis
אני צריך עזרה בכתיבת קובץ BATCH FILE

הקובץ הזה הוא לא בשביל משחק מסוים מפה, אלא בשביל משהו אחר שאני עובד עליו

אני יודע שיש פה כאלה שמבינים טוב בפונקציות של BATCH FILE, ואני מקווה שתצליחו לעזור לי

זה טיפה מורכב ואני באמת מנסה לכתוב את זה בצורה הכי ברורה ופשוטה שתוכלו להבין

אני צריך שהקובץ BATCH FILE יעשה 3 דברים
01. הרצת סקריפט
02. הרצת משחק
03. כיבוי סקריפט - נעשה באמצעות הפםונקציה TASKKILL /F /IM

01. הרצת סקריפט שיעבוד ברקע - את הסקריפט אני מריץ באמצעות פונקצית START
02. הרצת משחק - בעיקרון הייתי פשוט רושם למשל:

קוד: בחירת הכל

"d:\games\game1\go.exe"
וזה עבד בלי בעיה

הבעיה שהמשחק הזה לא רץ באמצעות סתם קובץ EXE, כדי להריץ אותו חייבים לכתוב 2 קבצי EXE באותה שורה לדוגמא:

קוד: בחירת הכל

LOAD.exe 2.exe
לכן כדי לנסות לפתור את הבעיה יצרתי קובץ BATCH נוסף שהתפקיד שלו יהיה להריץ את 2 הקבצים הנ"ל, מה שכתוב בו זה:

קוד: בחירת הכל

LOAD.exe 2.exe
ואז למעשה ניסיתי לקרוא לקובץ BATCH FILE הקטן יותר מהקובץ המקורי לאחר הרצת הסקריפטים באמצעות הפונקציה CALL

הבעיה שבמקום שהקובץ BATCH יריץ סקריפט, אחר כך משחק, אחר כך יסגור סקריפט הוא עושה את הדבר הבא
מריץ סקריפט, מריץ את המשחק וסוגר את הסקריפט במקביל

הדבר הזה גורם לכך שהסקריפט נכבה לפני שעולה המשחק

השאלה היא איך אני גורם לBATCH FILE לחכות שהקובץ BATCH הקטן מסיים לעבוד ורק אז לכבות את הסקריפט

אני מקווה שהצלחתם להבין את הבעיה ושתוכלו לעזור לי

המון המון תודה מראש

Re: עזרה בכתיבת BATCH FILE

נשלח: ו' נובמבר 05, 2010 2:58 pm
על ידי Octarine
אני לא באמת מבין בזה, וכנראה זה סתם פתרון ערבי, אבל אולי תוסיף pause לפי פקודת הכיבוי?

Re: עזרה בכתיבת BATCH FILE

נשלח: ו' נובמבר 05, 2010 10:11 pm
על ידי Og
גם אני לא מתקרב בידיעותיי לאשף, אבל בכל זאת אתן את שני הסנטים שלי: למה אתה קורא לקובץ אצווה נוסף? למה שפשוט לא תרשום את ה LOAD.exe 2.exe באותו קובץ האצווה?

Re: עזרה בכתיבת BATCH FILE

נשלח: א' נובמבר 07, 2010 9:28 am
על ידי dj_anubis
האמת שכבר ניסיתי את זה, מה שקרה אז שכשיצאתי מהמשחק הוא לא המשיך לשלב 3 - סגירת הסקריפט, המחשב יוצא מהמשחק, ומשאיר את הסקריפטים פתוחים

Re: עזרה בכתיבת BATCH FILE

נשלח: א' נובמבר 07, 2010 3:35 pm
על ידי raztk
@עוג: אני מודה לך על המחמאה, אך "אשף" נראית לי מילה חזקה מדי. :)

@dj_anubis: איך הקוד הבא?

קוד: בחירת הכל

@echo off
start <script_name>
load.exe 2.exe
:loop
for /f %%? in ('tasklist /fi "imagename eq 2.exe" 2^>nul') do goto loop
taskkill /f /im <script_name>
goto :eof

Re: עזרה בכתיבת BATCH FILE

נשלח: ה' נובמבר 11, 2010 3:13 am
על ידי dj_anubis
וואו שמע raztk אתה פשוט :king: אין מה להגיד

זה עבד איזה תותח, רק אם יש לך כוח תכתוב בקצרה מה הגיון שעומד מאחורי הקוד הזה

המון המון תודה :wav:

Re: עזרה בכתיבת BATCH FILE

נשלח: ה' נובמבר 11, 2010 1:40 pm
על ידי raztk
פשוט מאוד יצרתי לולאה שבודקת (בעזרת tasklist) אם התוכנה שלך רצה ברקע, וכשהיא לא רצה יותר, זה סוגר את הסקריפט שלך.

אני שמח שזה עובד לך. :)

Re: עזרה בכתיבת BATCH FILE

נשלח: ה' נובמבר 11, 2010 7:42 pm
על ידי dj_anubis
באמת שעזרת לי המון תודה :P