ניווט

    תחומים
    • הרשמה
    • התחברות
    • חיפוש
    • קטגוריות
    • פוסטים אחרונים
    • משתמשים
    • חיפוש
    • מקצועות
    חוקי הפורום

    עזרה בפקודות cmd, הגדרת משתנים

    תכנות
    3
    5
    62
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגב כנושא
    התחבר בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • shraga
      shraga נערך לאחרונה על ידי shraga

      שלום אשמח לעזרת החברים דכאן, במספר פקודות שונות, אני יכתוב אותם בעברית ואשמח אם מישהו יעזור לי לתרגם אותם לפקודת 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 ביט?

      תודה רבה!!

      chv תגובה 1 תגובה אחרונה תגובה ציטוט 0
      • כוכב שמח
        כוכב שמח נערך לאחרונה על ידי כוכב שמח

        @shraga

        reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > NUL && set 1234=test86.exe || set 1234=test64.exe
        start c:\%1234%
        

        במקום ה '1234' תכתוב מה שאתה רוצה (בשלושת הפעמים).

        תגובה 1 תגובה אחרונה תגובה ציטוט 1
        • chv
          chv @shraga נערך לאחרונה על ידי

          @shraga אתה צריך לבדוק את הערך של המערכת הפעלה. זה מה שמשנה (יכול להיות שהמעבד יהיה 64 אבל המערכת הפעלה 32)

          תסתכל כאן הכי ברור שיש: https://stackoverflow.com/a/35979925/13312191
          (תוסיף @echo off בהתחלה. ובמקום ההפניה לSUCCESS תשים את הפקודה להריץ את הקובץ המתאים ו-exit\pause)

          shraga תגובה 1 תגובה אחרונה תגובה ציטוט 2
          • shraga
            shraga @chv נערך לאחרונה על ידי

            תודה לכם!

            @chv

            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

            chv תגובה 1 תגובה אחרונה תגובה ציטוט 0
            • chv
              chv @shraga נערך לאחרונה על ידי

              @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

              תגובה 1 תגובה אחרונה תגובה ציטוט 1
              • 1 / 1
              • First post
                Last post
              בא תתחבר לדף היומי!