Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Системная переменная, зависимая от разрядности ОС
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Программное обеспечение printer-friendly view
View previous topic :: View next topic  
Author Message
Mellomann



Joined: 07 Sep 2009
Posts: 708

Post (Separately) Posted: Tue Feb 12, 2013 00:24    Post subject: Системная переменная, зависимая от разрядности ОС Reply with quote

Есть нечто такого вида: "%PROCESSOR_ARCHITECTURE%" на моей системе возвращает либо "x86" на 32-битной ОС, либо "AMD64" на 64. Всё понятно и логично до тех пор, пока у меня амдовский проц.

Вопрос знатокам от телезрителей:
Какой вариант мне вернёт эта переменная на интеловском проце под х64 ОС и могут ли быть ещё какие-то нестандартные варианты кроме "x86" и "AMD64"? на моей системе возвращает либо

p/s
Всё это добро я планирую использовать в кнопках и меню Тотала, например, для вызова соответствующего варианта AkelPad, RAR и т.п. прог, доступ которых периодически мне нужен к системной папке (тут без х64 никак), но и чтобы ради соседней х86 винды не переписывать ту же конфигу.
Back to top
View user's profile Send private message
jentoso



Joined: 20 Dec 2007
Posts: 346

Post (Separately) Posted: Tue Feb 12, 2013 00:28    Post subject: Reply with quote

Mellomann, WIndows 6 64-bit, %PROCESSOR_ARCHITECTURE% - AMD64. Процессор Intel Core i5
_________________
TC 11.03 combo, Windows 10 x64
Back to top
View user's profile Send private message
GGS



Joined: 02 May 2009
Posts: 322

Post (Separately) Posted: Tue Feb 12, 2013 08:44    Post subject: Reply with quote

Значение %PROCESSOR_ARCHITECTURE% зависит от запускаемого cmd.exe (32/64)
Выполните (Win+R) две команды:
Code:
C:\Windows\System32\cmd.exe /c set>C:\1.txt
C:\Windows\SysWOW64\cmd.exe /c set>C:\2.txt

и сравните 1.txt с 2.txt
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10236
Location: Россия, Саратов

Post (Separately) Posted: Tue Feb 12, 2013 08:56    Post subject: Reply with quote

Тема перенесена в "Программное обеспечение", поскольку сама обсуждаемая системная переменная к TC как таковому отношения не имеет (как её предполагается там использовать — вопрос второй).
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Feb 12, 2013 12:43    Post subject: Reply with quote

Mellomann
Повторение пройденного?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Mellomann



Joined: 07 Sep 2009
Posts: 708

Post (Separately) Posted: Tue Feb 12, 2013 21:32    Post subject: Reply with quote

Flasher
Странно, но поиск мне ту тему так и не дал вначале...

GGS wrote:
Значение %PROCESSOR_ARCHITECTURE% зависит от запускаемого cmd.exe

М-да... облом.

Как тогда можно иначе задать безусловное определение разрядности винды? Чтоб наверняка (либо 32, либо 64) и без всяких подпунктов, зависимостей...
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Tue Feb 12, 2013 22:43    Post subject: Reply with quote

Mellomann,
Можно тупо:
Code:
if exist "%SystemRoot%\SysWOW64" ...

Ещё вариант - определить несколько коротких переменных, задающих различия путей к 32-битному экзешнику от пути к 64-битному, например:
Code:
If %SYSINFO_OSARCH% = 64 Then
   SetEnv X64 X64.
Else
   SetEnv X64 .
EndIf

А в кнопке:
Code:
...\RegWorkshop\RegWorkshop%X64%exe

Проблема тут в том, что переменная должна быть непустой, иначе она тупо не раскроется. Можно вообще целиком путь к экзешнику в переменную запихивать и в кнопке просто переменную прописывать.
Code:
If %SYSINFO_OSARCH% = 64 Then
   SetEnv COMMANDER_RegWorkshop ...\RegWorkshop\RegWorkshopX64.exe
Else
   SetEnv COMMANDER_RegWorkshop ...\RegWorkshop\RegWorkshop.exe
EndIf

Code:
%COMMANDER_RegWorkshop%

_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Mellomann



Joined: 07 Sep 2009
Posts: 708

Post (Separately) Posted: Tue Feb 12, 2013 23:19    Post subject: Reply with quote

MVV
мне бы отделаться чем-то в таком конечном виде, например:
<...>\\Akelpad_%bit%\\Akelpad.exe
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Feb 12, 2013 23:32    Post subject: Reply with quote

Mellomann
В теме по моей ссылке разве не о том речь (с применением Autorun)?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Mellomann



Joined: 07 Sep 2009
Posts: 708

Post (Separately) Posted: Wed Feb 13, 2013 00:16    Post subject: Reply with quote

Flasher
перетаскивание файла на такую кнопку не откроет файл в нужной проге
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed Feb 13, 2013 00:17    Post subject: Reply with quote

Mellomann
А зачем лишние движения? Нажать на кнопку быстрей и легче, чем тащить до неё.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Mellomann



Joined: 07 Sep 2009
Posts: 708

Post (Separately) Posted: Wed Feb 13, 2013 00:39    Post subject: Reply with quote

Flasher
не всегда нужный файл ассоциирован именно с этой прогой, и далеко не все файлы (иногда нужных расширений) нуждаются в этой асс-и.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed Feb 13, 2013 00:44    Post subject: Reply with quote

Mellomann
Как связано с ассоциацией то, что я написал?
А из батника ты ещё можешь так вытащить: wmic os get osarchitecture
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Wed Feb 13, 2013 09:12    Post subject: Reply with quote

Flasher,
По-моему, вариант с проверкой существования SysWOW64 куда проще - особенно если сравнивать скорость выполнения.

Mellomann wrote:
мне бы отделаться чем-то в таком конечном виде, например:
<...>\\Akelpad_%bit%\\Akelpad.exe

Ну так и определи эту переменную bit в Autorun для каждой разрядности процессора. Главное, чтобы оба значения переменной были непустыми.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed Feb 13, 2013 12:24    Post subject: Reply with quote

MVV
Чем же проще, если в Autorun уже есть внутренняя переменная?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Программное обеспечение All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group