BATCH - IF-Anweisungen Verwendung von Variablen für die Datei Pfad

Habe ich ein batch-Skript, ich glaube, mein Problem hat zu tun mit Klammern, aber ich bin mir nicht sicher, wie das zu umgehen,

Dies ist es

REM  Detect if the OS is x86 or x64
IF DEFINED PROGRAMFILES(x86) (
  REM x64
  SET "_PROGRAMFILES=%PROGRAMFILES(x86)%"
  GOTO MAIN_PROGRAM
) ELSE (
  REM x86
  SET "_PROGRAMFILES=%PROGRAMFILES%"
  GOTO MAIN_PROGRAM
)
:MAIN_PROGRAM
SET "MY_EXE=%_PROGRAMFILES%\MYFOLDER\MYEXE.exe"
IF EXIST "%MY_EXE%" (
    ECHO YES
) ELSE (
    ECHO NO
)

Führen Sie diese auf x86 und das ist auch ok so, da der Pfad zu überprüfen ist C:\Program Files\MYFOLDER\MYEXE.exe

Führen Sie diese auf x64 und es Bomben aus "nicht erwartet, dass in dieser Zeit"

Ich bin mir ziemlich sicher, dass es hat zu tun mit dem Weg C:\Program Files (x86)\

Wie kann ich das umgehen (x86) - ist das das Problem


NEUE

    REM Is the OS x86

    IF "%PROCESSOR_ARCHITECTURE%" == "x86" (

      SET "_PROGRAMFILES=%PROGRAMFILES%"
      SET "_ARCH=x86"  

      ECHO CPU Architecture is: "%_ARCH%"
      ECHO Program Files Directory is: "%_PROGRAMFILES%"

      GOTO MAIN_PROGRAM

    ) 

    REM Is the OS AMD64

    IF "%PROCESSOR_ARCHITECTURE%" == "AMD64" (

      SET "_PROGRAMFILES=%PROGRAMFILES(x86)%"
      SET "_ARCH=x86"

      ECHO CPU Architecture is: "%_ARCH%"
      ECHO Program Files Directory is: "%_PROGRAMFILES%"

      GOTO MAIN_PROGRAM

    )


    GOTO ERROR_OS_ARCH

    :ERROR_OS_ARCH

    CLS

    cWnd.exe /SHOW @

    ECHO.
    ECHO Error 100: Operating System Architecture not Supported. Contact your IT Department
    ECHO.

    EXIT /B
  • durch die Art und Weise der genaue Fehler ist "\MYFOLDER\MYEXE.exe" ist nicht zu erwarten in dieser Zeit, der angibt, die variable %_PROGRAMFILES% leer ist? Ich fügte hinzu, ein "ECHO %_PROGRAMFILES% über die IF-Anweisung und zeigt es korrekt an. C:\Program Files (x86)
  • Funktioniert einwandfrei bei mir auf Vista x64. Sieht alles gut aus, mit entsprechender Angebotserstellung, etc. Ist der gepostete code der genaue code oder ein Auszug, der vielleicht nicht immer auf die gleiche wie das original?
  • Praktisch, dass hat bei mir unter Windows 7 SP1 auch auf Windows XP SP3.
  • es ist einfach nur ein üben aus einem größeren script, ich werde tun, einige weitere Tests, und fügen Sie die vollständige Sache, wenn ich bin immer noch sitzt, Jubelt.
InformationsquelleAutor StylusPilot | 2012-03-20
Schreibe einen Kommentar