Системная переменная, зависимая от разрядности ОС
Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik
Системная переменная, зависимая от разрядности ОС
Есть нечто такого вида: "%PROCESSOR_ARCHITECTURE%" на моей системе возвращает либо "x86" на 32-битной ОС, либо "AMD64" на 64. Всё понятно и логично до тех пор, пока у меня амдовский проц.
Вопрос знатокам от телезрителей:
Какой вариант мне вернёт эта переменная на интеловском проце под х64 ОС и могут ли быть ещё какие-то нестандартные варианты кроме "x86" и "AMD64"? на моей системе возвращает либо
p/s
Всё это добро я планирую использовать в кнопках и меню Тотала, например, для вызова соответствующего варианта AkelPad, RAR и т.п. прог, доступ которых периодически мне нужен к системной папке (тут без х64 никак), но и чтобы ради соседней х86 винды не переписывать ту же конфигу.
Вопрос знатокам от телезрителей:
Какой вариант мне вернёт эта переменная на интеловском проце под х64 ОС и могут ли быть ещё какие-то нестандартные варианты кроме "x86" и "AMD64"? на моей системе возвращает либо
p/s
Всё это добро я планирую использовать в кнопках и меню Тотала, например, для вызова соответствующего варианта AkelPad, RAR и т.п. прог, доступ которых периодически мне нужен к системной папке (тут без х64 никак), но и чтобы ради соседней х86 винды не переписывать ту же конфигу.
Значение %PROCESSOR_ARCHITECTURE% зависит от запускаемого cmd.exe (32/64)
Выполните (Win+R) две команды:
и сравните 1.txt с 2.txt
Выполните (Win+R) две команды:
Код: Выделить всё
C:\Windows\System32\cmd.exe /c set>C:\1.txt
C:\Windows\SysWOW64\cmd.exe /c set>C:\2.txtMellomann
Повторение пройденного?
Повторение пройденного?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Flasher
Странно, но поиск мне ту тему так и не дал вначале...
Как тогда можно иначе задать безусловное определение разрядности винды? Чтоб наверняка (либо 32, либо 64) и без всяких подпунктов, зависимостей...
Странно, но поиск мне ту тему так и не дал вначале...
М-да... облом.GGS писал(а):Значение %PROCESSOR_ARCHITECTURE% зависит от запускаемого cmd.exe
Как тогда можно иначе задать безусловное определение разрядности винды? Чтоб наверняка (либо 32, либо 64) и без всяких подпунктов, зависимостей...
Mellomann,
Можно тупо:
Ещё вариант - определить несколько коротких переменных, задающих различия путей к 32-битному экзешнику от пути к 64-битному, например:
А в кнопке:
Проблема тут в том, что переменная должна быть непустой, иначе она тупо не раскроется. Можно вообще целиком путь к экзешнику в переменную запихивать и в кнопке просто переменную прописывать.
Можно тупо:
Код: Выделить всё
if exist "%SystemRoot%\SysWOW64" ...Код: Выделить всё
If %SYSINFO_OSARCH% = 64 Then
SetEnv X64 X64.
Else
SetEnv X64 .
EndIf
Код: Выделить всё
...\RegWorkshop\RegWorkshop%X64%exeКод: Выделить всё
If %SYSINFO_OSARCH% = 64 Then
SetEnv COMMANDER_RegWorkshop ...\RegWorkshop\RegWorkshopX64.exe
Else
SetEnv COMMANDER_RegWorkshop ...\RegWorkshop\RegWorkshop.exe
EndIf
Код: Выделить всё
%COMMANDER_RegWorkshop%Mellomann
Как связано с ассоциацией то, что я написал?
А из батника ты ещё можешь так вытащить: wmic os get osarchitecture
Как связано с ассоциацией то, что я написал?
А из батника ты ещё можешь так вытащить: wmic os get osarchitecture
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Flasher,
По-моему, вариант с проверкой существования SysWOW64 куда проще - особенно если сравнивать скорость выполнения.
По-моему, вариант с проверкой существования SysWOW64 куда проще - особенно если сравнивать скорость выполнения.
Ну так и определи эту переменную bit в Autorun для каждой разрядности процессора. Главное, чтобы оба значения переменной были непустыми.Mellomann писал(а):мне бы отделаться чем-то в таком конечном виде, например:
<...>\\Akelpad_%bit%\\Akelpad.exe