Пакетный файл для 32 и 64 битов Windows7

Я должен создать пакетный файл для Windows 7. Этот .bat файл только для того, чтобы установить приложение. Проблема - то, что я должен знать, составляет ли Windows 7 32 бита (и затем запустите 32 установщика), или если это - Windows 7 64 бита (затем запускает установщик на 64 бита). Какую команду я могу использовать в пакетном файле, чтобы знать, составляет ли Windows 7 32 или 64 бита?

Заранее спасибо!!!

8
задан 20.08.2010, 20:26

3 ответа

в среде на 64 бита Вам назовут переменную среды

ProgramFiles (x86)

в среде на 32 бита у Вас нет той переменной. таким образом, Вы могли свериться

if defined ProgramFiles(x86) (
   REM do stuff for 64bit here
) else (
   REM do stuff for 32bit here
)
10
ответ дан 07.12.2019, 13:51

Можно использовать переменную среды PROCESSOR_ARCHITECTURE, чтобы определить, работает ли сам процесс как 32-разрядный или 64-разрядный. Значение является или AMD64 или x86.

Необходимо быть осторожными все же. Если бы Ваш пакетный файл выполняется от 32-разрядной версии CMD.EXE (в \Windows\SysWOW64), эта переменная была бы установлена на "x86", в то время как это будет "AMD64" если из CMD.EXE в \Windows\System32 на 64-разрядной версии Windows.

0
ответ дан 07.12.2019, 13:51

Если Вы не хотите использовать временный файл txt использование файла канал:

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
4
ответ дан 07.12.2019, 13:51

Теги

Похожие вопросы