Batch-Datei für Windows7 32 und 64 Bit


8

Ich muss eine Batch-Datei für Windows 7 erstellen. Diese .bat-Datei dient nur zur Installation einer Anwendung. Das Problem ist, dass ich wissen muss, ob Windows 7 32 Bit ist (und dann ein 32-Bit-Installationsprogramm ausführen) oder ob es ein Windows 7 64-Bit-Installationsprogramm ist (dann das 64-Bit-Installationsprogramm ausführen). Welchen Befehl kann ich in einer Batchdatei verwenden, um festzustellen, ob Windows 7 32 oder 64 Bit ist?

Danke im Voraus!!!


Ich schwöre, ich habe das schon einmal gesehen ...
Hallo71

Antworten:


10

In einer 64-Bit-Umgebung haben Sie eine Umgebungsvariable namens

Programmdateien (x86)

In einer 32-Bit-Umgebung haben Sie diese Variable nicht. so könnten Sie mit überprüfen

if defined ProgramFiles(x86) (
   REM do stuff for 64bit here
) else (
   REM do stuff for 32bit here
)

4

Wenn Sie keine temporäre TXT-Datei verwenden möchten, verwenden Sie eine Pipe:

Set RegQry=HKLM\Hardware\Description\System\CentralProcessor\0
REG.exe Query %RegQry%  | Find /i "x86" 
If %ERRORLEVEL% == 0 (
    GOTO X86
) ELSE (
    GOTO X64
)


:X86

Commands here

GOTO END

:X64

commands here

:End

3

Wenn Sie DEFINED verwenden, dürfen Sie den Variablennamen nicht mit% -Zeichen versehen:

if defined ProgramFiles(x86) (
   :: do stuff for 64bit here
) else (
   :: do stuff for 32bit here
)

0

Mit der Umgebungsvariablen PROCESSOR_ARCHITECTURE können Sie bestimmen, ob der Prozess selbst als 32-Bit- oder 64-Bit-Prozess ausgeführt wird. Der Wert ist entweder AMD64 oder x86.

Sie müssen jedoch vorsichtig sein. Wenn Ihre Batchdatei von der 32-Bit-Version von CMD.EXE (in \ Windows \ SysWOW64) ausgeführt wird, wird diese Variable auf "x86" gesetzt, während sie von CMD.EXE in \ Windows aus "AMD64" lautet \ System32 unter einer 64-Bit-Version von Windows.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.