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 

Определение разрядности ОС и запуск программы: одной строкой

 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Mellomann



Joined: 07 Sep 2009
Posts: 709

Post (Separately) Posted: Sun Oct 14, 2012 19:57    Post subject: Определение разрядности ОС и запуск программы: одной строкой Reply with quote

Суть задачи - в том, чтобы при помощи одной строки прописать определение разрядности винды и запустить соответствующую прогу. Всё это будет помещено в кнопку или в пункт меню "запуск".

Сейчас немного набросал общую суть и у меня это имеет вот такой вид:
Quote:
@if not exist "%ProgramW6432%" @set dirnm=AkelPad
@if exist "%ProgramW6432%" @set dirnm=AkelPad64
@"%COMMANDER_PATH%\Plugins\exe\%dirnm%\AkelPad.exe"


Хотелось бы уплотнить это в одну строку, не показывать окно консоли и затем поместить на кнопку (или в меню "запуск").

Какие будут идеи?
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Sun Oct 14, 2012 20:20    Post subject: Reply with quote

Mellomann
Не то?
Back to top
View user's profile Send private message
Mellomann



Joined: 07 Sep 2009
Posts: 709

Post (Separately) Posted: Sun Oct 14, 2012 20:44    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: Sun Oct 14, 2012 20:59    Post subject: Reply with quote

Mellomann
Зато там безошибочная установка переменной, указывающей на битность, в отличии от примера выше.

И почему нельзя было спросить (как у тебя это в привычку вошло) в существующей теме?
Back to top
View user's profile Send private message
Mellomann



Joined: 07 Sep 2009
Posts: 709

Post (Separately) Posted: Sun Oct 14, 2012 21:14    Post subject: Reply with quote

Покамест получил:
Quote:
TOTALCMD#BAR#DATA
%ComSpec% /c
? if not exist "%%ProgramW6432%%" ("%%COMMANDER_PATH%%\Plugins\exe\AkelPad\AkelPad.exe") else if exist "%%ProgramW6432%%" ("%%COMMANDER_PATH%%\Plugins\exe\AkelPad64\AkelPad.exe")
%ComSpec%
AP


-1
Осталось только как-то скрыть окно консольное...


Flasher wrote:
И почему нельзя было спросить (как у тебя это в привычку вошло) в существующей теме?
Потому, что тут задача - не просто определить, а запустить прогу соответствующей битности. При этом, чтобы всё уместилось в одну строку и применялось в качестве кнопки (или п.м."запуск").
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Sun Oct 14, 2012 21:21    Post subject: Reply with quote

Mellomann wrote:
Покамест получил:
Всё равно неправильное определение.
Mellomann wrote:
Осталось только как-то скрыть окно консольное.
У тебя куча батников и кнопок с консолью, и ты не знаешь как производить скрытие? Shocked Соотв. галку в кнопке ставить пробовал?

Mellomann wrote:
а запустить прогу соответствующей битности
А ты тему то читал? Там об это и речь.
Back to top
View user's profile Send private message
Mellomann



Joined: 07 Sep 2009
Posts: 709

Post (Separately) Posted: Sun Oct 14, 2012 21:24    Post subject: Reply with quote

Flasher wrote:
Всё равно неправильное определение.
Почему? Работает же...

Flasher wrote:
У тебя куча батников и кнопок с консолью, и ты не знаешь как производить скрытие?
Никогда не задавался такой целью.

Flasher wrote:
Соотв. галку в кнопке ставить пробовал?
Нужно не свернуть, а чтобы его вообще не было.
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Sun Oct 14, 2012 21:32    Post subject: Reply with quote

Mellomann wrote:
Почему? Работает же
В той же теме ответ на вопрос.

Mellomann wrote:
Нужно не свернуть, а чтобы его вообще не было.
Так это нужно для всех батников, а не конкретно для этого. Примеров утилит на форуме приводилось достаточно (мной в том числе). Ищи. Можно сразу в гугл (пример).

Но, откровенно говоря, сейчас некоторые по-другому делают.
В autorun.cfg пишут:
SetEnv /A /EV OSARCH %AUTORUN_OSARCH%
кидают exe-шники в две папки программы "32" и "64" и запускают (без всяких cmd):
%COMMANDER_PATH%\Plugins\exe\AkelPad\%OSARCH%\AkelPad.exe
Back to top
View user's profile Send private message
Mellomann



Joined: 07 Sep 2009
Posts: 709

Post (Separately) Posted: Sun Oct 14, 2012 22:13    Post subject: Reply with quote

Flasher wrote:
SetEnv /A /EV OSARCH %AUTORUN_OSARCH%
%COMMANDER_PATH%\Plugins\exe\AkelPad\%OSARCH%\AkelPad.exe

Ну, это если акелпад в разных папках - то да, хорошая идея.
А, напрмер, с CCleaner'ом (обе исполнялки в одной папке) такой фокус не прокатит.

Да и менять пути мне сейчас ой как не в тему - уж больно много на них уже завязано, что сходу и не вспомню все места, где придётся их править.

Неуж-то желаемое мною нереализуемо посредством одной-единственной строки без сторонних утилит?

Добавлено спустя 5 минут:

Хотя, идея с %PROCESSOR_ARCHITECTURE% в пути мне нравится... Жаль на ТС 32 не сработает...
Только есть нюанс - если х64 на амд пишет как amd64, то что отображается на интел? Неуж-то ia64?
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Sun Oct 14, 2012 22:49    Post subject: Reply with quote

Mellomann wrote:
А, напрмер, с CCleaner'ом (обе исполнялки в одной папке) такой фокус не прокатит.
Так способ уже не предполагает содержания в одной папке.
Mellomann wrote:
уж больно много на них уже завязано, что сходу и не вспомню все места, где придётся их править
Любой автозаменялкой поправишь, не так уж и проблемно.
Mellomann wrote:
Неуж-то желаемое мною нереализуемо посредством одной-единственной строки без сторонних утилит?
Вроде нет.
Mellomann wrote:
Хотя, идея с %PROCESSOR_ARCHITECTURE% в пути мне нравится... Жаль на ТС 32 не сработает...
А зачем ты там else if <...> повторно пишешь? Там же else достаточно.
А чтобы работало, я тебе пример в первом посте привёл.
Mellomann wrote:
Только есть нюанс - если х64 на амд пишет как amd64, то что отображается на интел? Неуж-то ia64?
Нет, то же самое.
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1172
Location: Макеевка

Post (Separately) Posted: Mon Oct 15, 2012 13:54    Post subject: Reply with quote

Quote:
Покамест получил

Тут более простой вариант, который можно записать и в одну строку.

Quote:
А, напрмер, с CCleaner'ом (обе исполнялки в одной папке) такой фокус не прокатит.

Как вариант - переименовать ехе-файлы CCleanerа и запускать их
CCleaner%OSARCH%.exe
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Mon Oct 15, 2012 13:56    Post subject: Reply with quote

LonerD wrote:
Тут более простой вариант
Папку можно переименовать, а также добавить там, где её нет. Не вариант.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Page 1 of 1

 
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