CMD/BAT - [решено] Батник поиск->запуск

Аватара пользователя
Harik

CMD/BAT - [решено] Батник поиск->запуск

Сообщение Harik »

Всем доброго времени суток. Возникла задачка. Нужно написать батник, функция которого - поиск конкретной программы. Местонахождение по условиям задачи не известно. Через tasklist произвести поиск на предмет присутствия приложения в списке задач. Если программа запущена, то всё ок, ECHO "сообщение". Если программа не запущена, то выполнить её запуск. Так вот, сопсно, не могу сообразить, как это прописать. Помогите плз
Аватара пользователя
amel27

Re: CMD/BAT - [решено] Батник поиск->запуск

Сообщение amel27 »

Цитата Harik:



Местонахождение по условиям задачи не известно.
CMD/BAT - [решено] Батник поиск->запуск




странная постановка задачи - в интернете икать?.. имя известно?
Аватара пользователя
Harik

Re: CMD/BAT - [решено] Батник поиск->запуск

Сообщение Harik »

более менее адекватный скрипт Foreigner'а



Код:

Код: Выделить всё

@echo off
setlocal
set /p file="File to find: "
call:search "%file%"
goto:eof
:search
set "name=%~n1"
set "ext=%~x1"
set "wmic=wmic datafile where (filename="%name%" AND extension="%ext:~1%") get name /value"
for /f "tokens=2 delims==" %%i in (' "%wmic%" ') do echo %%i



Однако не могу запустить программу при условии её нахождения. Наверное я что-то не так делаю!?



Код:

Код: Выделить всё

if exist "%file%" start "%file%" else echo "%file%" missing
Аватара пользователя
Harik

Re: CMD/BAT - [решено] Батник поиск->запуск

Сообщение Harik »

имеется ввиду, неизвестно, на каком диске располагается программа и в каком каталоге. Слишком просто было бы, зная весь путь. Имя известно. В принципе, по скольку задача абстрактная, то это может быть любой исполнительный файл. Однако, как описано выше, батнику не нужно говорить прямой путь к файлу. Он его должен найти по критерию "имя файла"
Аватара пользователя
Harik

Re: CMD/BAT - [решено] Батник поиск->запуск

Сообщение Harik »

Цитата Harik:



Слишком просто было бы, зная весь путь.
CMD/BAT - [решено] Батник поиск->запуск




пример поиска файла по всем дискам (включая сетевые):

Код:

Код: Выделить всё

@Echo Off
Set EXE=Notepad.EXE
(WMIC Path CIM_DataFile Where "Extension='EXE' AND Name LIKE '%%\\%EXE%'" Get Name /Value
)|Find "="
Pause>Nul
Аватара пользователя
amel27

Re: CMD/BAT - [решено] Батник поиск->запуск

Сообщение amel27 »

Цитата Harik:



Почему программа запускается в фоновом режиме?
CMD/BAT - [решено] Батник поиск->запуск




Потому что у программы at.exe есть параметр /interactive, который позволяет видеть окно приложения, запущенное в окружении SYSTEM.



Код:
Аватара пользователя
Foreigner

Re: CMD/BAT - [решено] Батник поиск->запуск

Сообщение Foreigner »

amel27, у меня скрипт выдаёт ошибку (Window XP SP3). Можно ли сделать поисковик, чтобы в командной строке вбивать искомый файл, а в итоге получить пути, где он найден.
Аватара пользователя
sov44

Re: CMD/BAT - [решено] Батник поиск->запуск

Сообщение sov44 »

amel27, у меня скрипт выдаёт ошибку (Window XP SP3). Можно ли сделать поисковик, чтобы в командной строке вбивать искомый файл, а в итоге получить пути, где он найден.
Аватара пользователя
Foreigner

Re: CMD/BAT - [решено] Батник поиск->запуск

Сообщение Foreigner »

sov44,

Попробуйте так:



Код:

Код: Выделить всё

@echo off
setlocal
set /p file="File to find: "
call:search "%file%"
goto:eof
:search     
set "name=%~n1"
set "ext=%~x1"
set "wmic=wmic datafile where (filename="%name%" AND extension="%ext:~1%") get name /value"
for /f "tokens=2 delims==" %%i in (' "%wmic%" ') do echo %%i
Аватара пользователя
sov44

Re: CMD/BAT - [решено] Батник поиск->запуск

Сообщение sov44 »

Цитата sov44:



у меня скрипт выдаёт ошибку (Window XP SP3)
CMD/BAT - [решено] Батник поиск->запуск




проблема не в скрипте, а в системе (конкретно - служба WMI), подробную инфу ищите в журналах событий

по вопросам оздоровления Windows - в другую ветку ;)
Ответить

Вернуться в «Скриптовые языки администрирования Windows»