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!!!

Javier Marti
quelle
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
)
Akira
quelle
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
Justin Lockwood
quelle
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
)
Maxence
quelle
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.

Jeremy
quelle