Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: bat-файл в 64-разрядной системе
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
toweroff
Запускаю bat из проводника - все нормально, переменная содержит AMD64
Запускаю из TotalCommander - x86

Я так понимаю, что тотал запускается в 32-разрядном режиме и, запуская процессы от своего имени, те также вертятся в x86?

Как все-таки однозначно определить из bat-файла, под какой архитектурой его стартанули, вне зависимости от процесса, его запустившего?

нашел.

Код
IF "%PROCESSOR_ARCHITECTURE%" == "AMD64" goto lbl_x64
IF "%PROCESSOR_ARCHITEW6432%" == "AMD64" goto lbl_x64
IF "%PROCESSOR_ARCHITECTURE%" == "x86" goto lbl_x86


как-то так
Genadi Zawidowski
Попробуйте запустить не .BAT, а .CMD - будут ли отличия в поведении.
h0t
Цитата(toweroff @ Feb 19 2012, 21:26) *
Запускаю bat из проводника - все нормально, переменная содержит AMD64
Запускаю из TotalCommander - x86

Я так понимаю, что тотал запускается в 32-разрядном режиме и, запуская процессы от своего имени, те также вертятся в x86?

Как все-таки однозначно определить из bat-файла, под какой архитектурой его стартанули, вне зависимости от процесса, его запустившего?

нашел.

Код
IF "%PROCESSOR_ARCHITECTURE%" == "AMD64" goto lbl_x64
IF "%PROCESSOR_ARCHITEW6432%" == "AMD64" goto lbl_x64
IF "%PROCESSOR_ARCHITECTURE%" == "x86" goto lbl_x86


как-то так



bat файлом Вы тут не отделитесь, нужно вызывать WinAPI.
toweroff
Цитата(Genadi Zawidowski @ Feb 20 2012, 04:32) *
Попробуйте запустить не .BAT, а .CMD - будут ли отличия в поведении.

то же самое

Цитата(h0t @ Feb 20 2012, 09:31) *
bat файлом Вы тут не отделитесь, нужно вызывать WinAPI.

почему? если сознательно не переопределять переменные...
smalcom
в лоб можно решить если проверить наличие каталога "ProgramFiles (x86)", если есть, то система AMD64
toweroff
Цитата(smalcom @ Feb 24 2012, 22:45) *
в лоб можно решить если проверить наличие каталога "ProgramFiles (x86)", если есть, то система AMD64

ну с таким подходом я бы проверял все-таки %WinDir%\SysWOW64
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.