-
שלום אשמח לעזרת החברים דכאן, במספר פקודות שונות, אני יכתוב אותם בעברית ואשמח אם מישהו יעזור לי לתרגם אותם לפקודת cmd.
פקודה שתפעיל קובץ exe בתלות בגירסת מערכת ההפעלה, היינו
במידה ומערכת ההפעלה היא 64 ביט = יפתח קובץ בשם c:\test64.exe
במידה והמערכת היא 32 ביט = יפתח קובץ בשם c:\test86.exeיש מספר פקודות אפשרויות שמציגות את גירסת מערכת ההפעלה, כגון:
wmic os get osarchitecture
או
echo %PROCESSOR_ARCHITECTURE%לפי מה שאני מבין אני צריך הצבה של הפלט מהפקודות הנ"ל כמשתנה, ואז הגדרה שif המשתנה הוא
OSArchitecture 64-bit
שיעשה start לקובץ c:\test64.exe ואם המשתנה הוא
OSArchitecture 32-bit
שיעשה start לקובץ c:\test86.exe.
לפי איך שנראה לי הפקודה היא:
IF %processor_architecture%==AMD64 start c:\test64.exe
אני צודק? אם כן, מה הפלט של processor_architecture במקרה של 32 ביט?
תודה רבה!!
-
@shraga אתה צריך לבדוק את הערך של המערכת הפעלה. זה מה שמשנה (יכול להיות שהמעבד יהיה 64 אבל המערכת הפעלה 32)
תסתכל כאן הכי ברור שיש: https://stackoverflow.com/a/35979925/13312191
(תוסיף @echo off בהתחלה. ובמקום ההפניה לSUCCESS תשים את הפקודה להריץ את הקובץ המתאים ו-exit\pause) -
תודה לכם!
FOR /f "tokens=2 delims==" %%f IN ('wmic os get osarchitecture /value ^| find "="') DO SET "OS_ARCH=%%f" IF "%OS_ARCH%"=="32-bit" GOTO :32bit IF "%OS_ARCH%"=="64-bit" GOTO :64bit ECHO OS Architecture %OS_ARCH% is not supported! EXIT 1 :32bit ECHO "32 bit Operating System" GOTO :START "c:\test86.exe" :64bit ECHO "64 bit Operating System" GOTO :START "c:\test64.exe" :SUCCESS EXIT 0
אני כנראה מפספס את:
@chv אמר בעזרה בפקודות cmd, הגדרת משתנים:ו-exit\pause)
לא הבנתי מה בדיוק לשים והיכן, אין לי שום מושג בתחביר של cmd
-
@shraga ככה:
@echo off FOR /f "tokens=2 delims==" %%f IN ('wmic os get osarchitecture /value ^| find "="') DO SET "OS_ARCH=%%f" IF "%OS_ARCH%"=="32-bit" GOTO :32bit IF "%OS_ARCH%"=="64-bit" GOTO :64bit ECHO OS Architecture %OS_ARCH% is not supported! pause :32bit ECHO "32 bit Operating System" START "c:\test86.exe" pause :64bit ECHO "64 bit Operating System" START "c:\test64.exe" pause
אם אין לך עניין שיציג הודעה אלא פשוט יפעיל את הקובץ המבוקש וייסגר מיד החלון של CMD, תחליף את המילים pause ב-exit
-