Определение битности системы

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Factotum
Было.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Tol!k писал(а):setx.exe установит глобальную переменную.
Ха, тогда да. Но без прав администратора, или без повышения на Windows 7, толку с неё будет зеро.
putinvovik
Сообщения: 15
Зарегистрирован: Пт июл 10, 2009 16:13
Контактная информация:

Сообщение putinvovik »

Хочу создать ярлык на батник (и как бы написать этот батник), чтоб в 64-битной системе ТС запускался из под другого ini-файла, написанного специально под 64-битную систему.
Конечно не обессудьте за чайниковский вопрос. Я ношу ТС на флешке, которую приходится втыкать в разные компы с разными системами.
Если кто поможет - респект, а то я пытался - что-то не так всё равно получается.
:?:
i1
Сообщения: 34
Зарегистрирован: Чт янв 13, 2011 19:28

Сообщение i1 »

putinvovik,
Параметр командной строки, может подойдёт такой способ:
/i=имя.ini — Указывает, что вместо wincmd.ini, для сохранения настроек следует использовать другой INI-файл имя.ini
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

putinvovik писал(а):Если кто поможет - респект, а то я пытался - что-то не так всё равно получается.
А чем не устраивают предложенные выше варианты? Например, такой? Здесь прописывай свою строку запуска.
Нет, я не сплю. Я просто медленно моргаю.
putinvovik
Сообщения: 15
Зарегистрирован: Пт июл 10, 2009 16:13
Контактная информация:

Сообщение putinvovik »

ОК
Я делал примерно вот так:

If exist %programfiles(x86)%
( start /wait "бла-бла-х64.exe")
elseif (exist "%programfiles% and not %programfiles(x86)%) (start /wait "бла-бла-x86.exe" )
else ()

Последнюю строку else () оставил на всякий случай для того, чтоб что-то прописать для запуска из-под wine под линуксом.

Не могу понять ошибаюсь ли, ну завтра дома буду - на 64-битной системе проверю и отпишусь
putinvovik
Сообщения: 15
Зарегистрирован: Пт июл 10, 2009 16:13
Контактная информация:

Сообщение putinvovik »

i1 писал(а):putinvovik,
Параметр командной строки, может подойдёт такой способ:
/i=имя.ini — Указывает, что вместо wincmd.ini, для сохранения настроек следует использовать другой INI-файл имя.ini
А это и так понятно
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

putinvovik
Если не править значение переменной, то можно таким скриптом воспользоваться:
' Запуск TC с настройками, заточенными под архитектуру ОС
'==================================================
With CreateObject("WScript.Shell")
TC=.ExpandEnvironmentStrings("%COMMANDER_PATH%\")
If Len(.ExpandEnvironmentStrings("%ProgramFiles(X86)%"))=19 Then
.Run """" & TC & "totalcmd.exe"" /i=""" & TC & "ConfigFiles\Wincmd_32.ini"""
Else .Run """" & TC & "totalcmd.exe"" /i=""" & TC & "ConfigFiles\Wincmd_64.ini"""
End If
End With
ConfigFiles - папка в корне ТС.
GGS
Сообщения: 322
Зарегистрирован: Сб май 02, 2009 13:00

Сообщение GGS »

Тоже столкнулся с необходимостью определения битности ОС, сделал так (Test.bat):

Код: Выделить всё

@echo OFF
IF "%ProgramW6432%"=="" (echo 32) ELSE echo 64
pause
На Win7 работает правильно. У кого есть дугие ОС 32/64 проверьте пожалуйста.
Аватара пользователя
CaptainFlint
Сообщения: 6239
Зарегистрирован: Вт дек 14, 2004 22:34
Контактная информация:

Сообщение CaptainFlint »

GGS
Это работает, только если запускать через 32-битный cmd.exe. 64-битный говорит "32".
Имеет смысл вместо %ProgramW6432% проверять %ProgramFiles(x86)%, эта переменная определена в обоих окружениях.

PS: Проверял на WinXP x64.
Почему же, ё-моё, ты нигде не пишешь "ё"?
Ответить