View previous topic :: View next topic |
Author |
Message |
HA3APET
Joined: 22 Feb 2010 Posts: 151
|
(Separately) Posted: Sun Jun 06, 2010 04:40 Post subject: Скрипт автоматический определяющий OC |
|
|
Возникла надобность сделать автоматический запуск приложений с автоматическим определением ОС.
То есть если у нас ХР, то запускается одна программа, если Vista\7, то другая.
Наверное это будет выглядить как скрипт определяющий битность ОС
Code: | IF EXIST "%ProgramFiles(x86)%" (
Start /Wait Program1.exe
) Else (
Start /Wait Program2.exe
) |
Но я не нашёл отличия в переменных средах между ХР и Vista\7
Есть у кого какие идеи? |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Sun Jun 06, 2010 09:02 Post subject: |
|
|
Вообще, можно делать так:
Code: | ver|find "Windows XP">nul
if not errorlevel 1 (
echo Windows XP
) else (
echo Not Windows XP
) |
То есть, запускаем команду отображения версии системы и передаем вывод команде поиска строки.
Строку, в которой будет производиться поиск, всегда можно получить, набрав в консоли любой винды просто команду ver. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
HA3APET
Joined: 22 Feb 2010 Posts: 151
|
(Separately) Posted: Sun Jun 06, 2010 10:50 Post subject: |
|
|
MVV, я в скриптах пока несилен, как использовать этот код для запуска той или иной программы при разных результатах данного кода?
Каков итоговый скрипт если у меня есть 2 программы:
Program1.exe запуск при XP
Program2.exe запуск при not ХР |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Sun Jun 06, 2010 20:02 Post subject: |
|
|
Code: | @ver |find "Windows XP" >nul &&start "" "progXP.exe" ||start "" "prog7.exe" |
Добавлено
Flasher wrote: | @echo off не помешает |
OK
Last edited by Tol!k on Sun Jun 06, 2010 20:32; edited 1 time in total |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Jun 06, 2010 20:17 Post subject: |
|
|
@echo off не помешает
HA3APET
И чтобы было понятно(а то мало ли), это батник. Сохранить в cmd/bat. |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Sun Jun 06, 2010 20:50 Post subject: |
|
|
Flasher wrote: | это батник. Сохранить в cmd/bat. | Уместится в кнопке
Code: | TOTALCMD#BAR#DATA
%comspec% /c
@ver |find "Windows XP" >nul &&start "" "progXP.exe" ||start "" "prog7.exe"
%COMMANDER_PATH%\WCMICONS.DLL,44
XP | 7
1
-1
|
|
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Sun Jun 06, 2010 21:27 Post subject: |
|
|
> додумались ли они описать это
Хм, додумались: hh.exe %windir%\Help\ntcmds.chm::/ntcmds_shelloverview.htm
У приведённого кода есть "фича": если запуск progXP.exe завершится неудачей, будет запущена prog7.exe даже если ось не ХР.
Если это недопустимо, нужно сделать принудительный выход
Code: | @ver |find "Windows XP" >nul &&(start "" "progXP.exe" &exit) ||start "" "prog7.exe" |
Last edited by Tol!k on Sun Jun 06, 2010 23:20; edited 1 time in total |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Sun Jun 06, 2010 23:13 Post subject: |
|
|
Действительно. Кто б мог подумать, что Windows Help полезен... Я нашел информацию в системной справке в статье "Общие сведения о командной оболочке", та самая статья из файла ntcmds.chm.
Но у такого способа обработки есть один тонкий момент. Если команда, указанная между && и ||, выполняется не успешно, то команда за || выполнена будет. То есть, система попытается выполнить обе. В данном примере этой командой является команда start, то есть, если первая команда start провалится, командный процессор выполнит вторую, которая по условию задачи не предназначена для текущей операционной системы. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Sun Jun 06, 2010 23:27 Post subject: |
|
|
Quote: | Я нашел информацию в системной справке в статье "Общие сведения о командной оболочке", та самая статья из файла ntcmds.chm. | Если выполнить команду hh.exe %windir%\Help\ntcmds.chm::/ntcmds_shelloverview.htm на Windows XP, то попадёшь именно на эту статью.
Quote: | Но у такого способа обработки есть один тонкий момент. | Дополнил предыдущий пост.
Quote: | То есть, система попытается выполнить обе. | Попытка выполнения второй команды будет только в случае неудачного выполнения первой. Если первая команда выполнена успешно, попытки выполнения второй не будет. |
|
Back to top |
|
|
HA3APET
Joined: 22 Feb 2010 Posts: 151
|
(Separately) Posted: Mon Jun 07, 2010 04:51 Post subject: |
|
|
MVV, во, теперь понятно. Спасибо большое.
Tol!k, спасибо, оба способа работают. |
|
Back to top |
|
|
|