Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Определить путь к исполняемому файлу и запустить его.

Ответить
Настройки темы
CMD/BAT - [решено] Определить путь к исполняемому файлу и запустить его.

Пользователь


Сообщения: 65
Благодарности: 7

Профиль | Отправить PM | Цитировать


Переменная %ProgramFiles% возвращает путь к «Program Files» на системном разделе.
Каким образом можно определить путь к исполняемому файлу(букву диска), если он установлен в папке «Program Files» на другом разделе и реализовать подобный сценарий:
Код: Выделить весь код
If exist "%ProgramFiles%\Prog\Prog.exe" (
 Start "" "%ProgramFiles%\Prog\Prog.exe"
) Else (
 Echo «Текст»
 Pause
 Exit
)

Отправлено: 18:25, 04-04-2013

 

Аватара для deviance

Пользователь


Сообщения: 123
Благодарности: 43

Профиль | Отправить PM | Цитировать


Lucretius, достаточно взять первые два символа строки, в которую раскрывается переменная %ProgramFiles%, чтобы узнать букву диска:
Код: Выделить весь код
@echo %programfiles:~0,2%

Отправлено: 19:07, 04-04-2013 | #2



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

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


Пользователь


Сообщения: 65
Благодарности: 7

Профиль | Отправить PM | Цитировать


deviance, Это мне известно, но мне надо другое. Вероятно, я не совсем точно изложил суть задачи. Мне необходимо сделать батник, который найдёт программу по её имени и запустит её, вне зависимости от того, на каком диске она находиться. Директория установки по умолчанию: «\Program Files\Prog\». Установку в папку НЕ назначенную по умолчанию я не рассматриваю.
Предположим, что на машине пользователя существует две папки «Program Files» на дисках С и D, допустим, что программа установлена в «D:\Program Files\Prog\» , а переменная %ProgramFiles% возвращает «C:\Program Files» так вот, нужно, чтобы скрипт нашёл программу и запустил её. Выше приведённый скрипт я привёл в пример, чтобы объяснить конечную цель.

Отправлено: 20:08, 04-04-2013 | #3


Ветеран


Сообщения: 2196
Благодарности: 727

Профиль | Отправить PM | Цитировать


Lucretius, примерно так?
Код: Выделить весь код
for %%a in (a,b,c,d,e,f) do if exist "%%a:\Program Files\Prog\proga.exe" start "" "%%a:\Program Files\Prog\proga.exe"
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:22, 04-04-2013 | #4


Пользователь


Сообщения: 65
Благодарности: 7

Профиль | Отправить PM | Цитировать


sov44, Да, это то, что нужно. Спасибо!

Отправлено: 20:40, 04-04-2013 | #5


Пользователь


Сообщения: 65
Благодарности: 7

Профиль | Отправить PM | Цитировать


Возникла, следующая проблема: добавил в список все 26 букв, при обращении к устройствам со съёмными носителями (напр. картридер) появляются окна с ошибкой "В устройстве нет диска. Вставьте диск в устройство". Ищу другой вариант...

Отправлено: 21:28, 04-04-2013 | #6


Ветеран


Сообщения: 2196
Благодарности: 727

Профиль | Отправить PM | Цитировать


тогда наверное так
Код: Выделить весь код
for /f "skip=1" %%a in ('2^>nul WMIC LogicalDisk WHERE "DriveType='3'"') do (
if exist "%%a\Program Files\Prog\proga.exe" start "" "%%a\Program Files\Prog\proga.exe"
)
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:10, 04-04-2013 | #7


Пользователь


Сообщения: 65
Благодарности: 7

Профиль | Отправить PM | Цитировать


Что-то не так. Команда «WMIC LogicalDisk WHERE "DriveType='3'"» в консоли работает, выводиться информация о логических дисках, но в составе приведённого Вами скрипта(bat-файл) все буквы дисков определяются как "0"
Код: Выделить весь код
C:\Windows\system32>(if exist "0\Program Files\Prog\proga.exe" start "" "0\Progr
am Files\Prog\proga.exe" )

C:\Windows\system32>(if exist "0\Program Files\Prog\proga.exe" start "" "0\Progr
am Files\Prog\proga.exe" )

C:\Windows\system32>(if exist "0\Program Files\Prog\proga.exe" start "" "0\Progr
am Files\Prog\proga.exe" )

Отправлено: 22:59, 04-04-2013 | #8


Пользователь


Сообщения: 65
Благодарности: 7

Профиль | Отправить PM | Цитировать


Причём буквы съёмных "DriveType='2' и привода "DriveType='5' определяет!?

Отправлено: 23:30, 04-04-2013 | #9


Пользователь


Сообщения: 65
Благодарности: 7

Профиль | Отправить PM | Цитировать


sov44, Ваш скрипт заработал с небольшой поправкой:
Код: Выделить весь код
for /f "skip=1" %%a in ('wmic LogicalDisk where "DriveType=3" get Name') do (
if exist "%%a\Program Files\Prog\proga.exe" start "" "%%a\Program Files\Prog\proga.exe"
)
Спасибо!

Отправлено: 00:05, 05-04-2013 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Определить путь к исполняемому файлу и запустить его.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Передача исполняемому файлу параметров, перечисленных в текстовом файле Vadikan Скриптовые языки администрирования Windows 6 19-04-2017 02:30
CMD/BAT - Скопировать путь к открытому файлу и прописать его в конце текстового файла. VirusFUN Скриптовые языки администрирования Windows 5 10-09-2012 08:08
Система - Не удаётся найти путь к исполняемому файлу jazzissimo Программное обеспечение Windows 9 06-01-2012 01:44
C/C++ - Как указать путь к исполняему файлу и запустить его (Visual Studio 2010) steff Программирование и базы данных 3 22-03-2011 07:46
CMD/BAT - [решено] BAT to EXE Не может определить путь к файлу men232 Скриптовые языки администрирования Windows 4 07-10-2010 20:09




 
Переход