Определить разрядность запущенного TC

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

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

Аватара пользователя
gora
Сообщения: 442
Зарегистрирован: Чт дек 30, 2004 13:09
Откуда: Иваново

Определить разрядность запущенного TC

Сообщение gora »

Батник будет запускаться из запущенного ТС версий 7 или 8.
Как с помощью батника определить разрядность (х86 или х64) того ТС, из которого произведен запуск батника с учетом того, что обе версии (х86 и х64) TC могут быть запущены одновременно?

[mod="Avada"]Подфорум для запроса выбран неудачно. Перенесено в "Автоматизацию".[/mod]
Win7 SP1 Ultimate x64, TC8.52a x64
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Так базовое имя у TC8x64 с "64" на конце. Соответственно, по %COMMANDER_EXE% из 8-ки (начиная с pb10) и определять. На 7-ке переменная будет отсутствовать, значит, разрядность - 32. На vbs можно ещё одним способом.
Аватара пользователя
gora
Сообщения: 442
Зарегистрирован: Чт дек 30, 2004 13:09
Откуда: Иваново

Сообщение gora »

Flasher писал(а):начиная с pb10
Вот здесь я и застрял! А если у пользователя более ранняя бета и он не удосужился ее обновить?
Flasher писал(а):На vbs можно ещё одним способом
Можно увидеть реализацию?
Win7 SP1 Ultimate x64, TC8.52a x64
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

gora писал(а):А если у пользователя более ранняя бета и он не удосужился ее обновить?
А, т.е. это не для себя делается. Тогда на cmd пока не знаю как. Можно в комментарии написать условие про минимальность версии.
gora писал(а):Можно увидеть реализацию?
Я тут несколько дней назад предлагал протестировать скрипт. В нём на 49 строке есть ответ.
Если поддержка в тестах будет, даю полноценный ответ.
Аватара пользователя
gora
Сообщения: 442
Зарегистрирован: Чт дек 30, 2004 13:09
Откуда: Иваново

Сообщение gora »

Flasher писал(а):есть ответ
А БЕЗусловный ответ получить нельзя?
Win7 SP1 Ultimate x64, TC8.52a x64
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

gora писал(а):А БЕЗусловный ответ получить нельзя?
Можно, но сложно. Пока лень писать реализацию. А кому-то, видимо, лень тестировать. У каждого своё. :wink:
В коде того скрипта "ответ" неполноценный, скомканный, там есть ненужные завязки.

Кстати, сюда же можно подключить и проверку системы на битность, будет вообще оптимал. :)
Аватара пользователя
gora
Сообщения: 442
Зарегистрирован: Чт дек 30, 2004 13:09
Откуда: Иваново

Сообщение gora »

Flasher писал(а):Можно, но сложно.
Ясно
Flasher писал(а):проверку системы на битность, будет вообще оптимал
Такая переменная у меня есть и без скрипта, кстати ее легко получить и батником.
Win7 SP1 Ultimate x64, TC8.52a x64
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

gora писал(а):кстати ее легко получить и батником.
Только батник в vbs подвязывать как-то неахти. И как реализуется? Проверкой на существование папки PF? У меня более универсальный метод.
Аватара пользователя
gora
Сообщения: 442
Зарегистрирован: Чт дек 30, 2004 13:09
Откуда: Иваново

Сообщение gora »

Flasher писал(а):как реализуется?

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

Set xOS=x86& If Defined PROCESSOR_ARCHITEW6432 (Set xOS=x64) Else If "%PROCESSOR_ARCHITECTURE%"=="AMD64" Set xOS=x64
Win7 SP1 Ultimate x64, TC8.52a x64
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

gora, дык. :?:
Аватара пользователя
gora
Сообщения: 442
Зарегистрирован: Чт дек 30, 2004 13:09
Откуда: Иваново

Сообщение gora »

Flasher писал(а):дык.
И что? Моя строка прекрасно работает и из-под ТС, и без него. Всегда определяет правильно.
Win7 SP1 Ultimate x64, TC8.52a x64
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Из-под ТСx32 на Winx32 она [s]не может верно работат[/s]ь, т.к. PROCESSOR_ARCHITECTURE покажет x86, а не AMD64.
А, хотя нет. Вижу в коде, что при невыполнении условий остаётся первое значение. Возьмём на заметику (даже не столько саму реализацию, сколько метод предусловности).
Аватара пользователя
gora
Сообщения: 442
Зарегистрирован: Чт дек 30, 2004 13:09
Откуда: Иваново

Сообщение gora »

Del
Последний раз редактировалось gora Чт янв 19, 2012 13:39, всего редактировалось 1 раз.
Win7 SP1 Ultimate x64, TC8.52a x64
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

gora
С опозданицем. См. выше.

А что должно происходить после выяснения битности ТС?
Аватара пользователя
gora
Сообщения: 442
Зарегистрирован: Чт дек 30, 2004 13:09
Откуда: Иваново

Сообщение gora »

Flasher писал(а):А что должно происходить после выяснения битности ТС?
Установка "Кнопки..." нужной разрядности.
Win7 SP1 Ultimate x64, TC8.52a x64
Ответить