реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
toweroff
сообщение Feb 19 2012, 17:26
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Запускаю 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


как-то так
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Feb 20 2012, 00:32
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Попробуйте запустить не .BAT, а .CMD - будут ли отличия в поведении.
Go to the top of the page
 
+Quote Post
h0t
сообщение Feb 20 2012, 05:31
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 51
Регистрация: 23-09-11
Пользователь №: 67 345



Цитата(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.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 20 2012, 06:37
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



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

то же самое

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

почему? если сознательно не переопределять переменные...
Go to the top of the page
 
+Quote Post
smalcom
сообщение Feb 24 2012, 18:45
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



в лоб можно решить если проверить наличие каталога "ProgramFiles (x86)", если есть, то система AMD64
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 25 2012, 08:09
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



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

ну с таким подходом я бы проверял все-таки %WinDir%\SysWOW64
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st June 2025 - 13:10
Рейтинг@Mail.ru


Страница сгенерированна за 0.0154 секунд с 7
ELECTRONIX ©2004-2016