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

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

Ответить
Настройки темы
CMD/BAT - [решено] Поиск и ожидание закрытия, уже запущенного процесса

Новый участник


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

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


Всем привет,
Помогите написать батник или может как то по другому. в Общем.

Нужно, чтоб, при запуске батника, он нашел уже запущенный процесс *****.exe и ждал его завершения, в течении дня, как пользователь попользуется. не важно, главное чтоб ждал, после как процесс завершится, должна выполнится команда

удаление папки, там, куда будет помещен батник
Код: Выделить весь код
@for /f "tokens=1 delims=" %%D in ('dir /ad /b /s "Какая то папка или файл"') do rd /q /s "%%D"
у меня есть один код,

нашел на просторах инета,

Код: Выделить весь код
set process=какаято-прога.exe
:check
tasklist /FI "IMAGENAME eq %process%" /NH | findstr /i "%process%">nul
if %errorLevel% == 0 goto :check
@for /f "tokens=1 delims=" %%D in ('dir /ad /b /s "Data"') do rd /q /s "%%D"
pause
но он грузит Проц 5-10% что не допустимо, комп должен быть не нагружен вообще. Как такое реализовать.

Отправлено: 09:11, 22-08-2020

 

Ветеран


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

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


Цитата Logonius:
он нашел уже запущенный процесс »
А если не нашёл — тогда что?
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:51, 22-08-2020 | #2



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

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


Новый участник


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

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


Цитата Iska:
А если не нашёл — тогда что? »
так не будет, батник будет запускаться после основного файла следом.

Отправлено: 12:39, 22-08-2020 | #3


Аватара для Fors1k

Старожил


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

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


Код: Выделить весь код
param(
    $app = 'calc',
    $del = 'name'
)cls

if(ps $app){
    while(ps $app){sleep 1}
    ri "$PSScriptRoot\$del" -rec 
}
else{"$app not launched yet."}

Отправлено: 12:44, 22-08-2020 | #4


Новый участник


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

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


Fors1k,

я дико извиняюсь, но я не але ваще, ваш код не работает у меня, я наверное не так что-то делаю, тыкаю, и тишина), если можно для дурачков объяснить

Отправлено: 12:55, 22-08-2020 | #5


Старожил


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

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


Logonius, это скрипт powershell.
В значении переменной $app прописываете процесс, который нужно контролировать, в переменную $del - папку, которую нужно удалять.

Отправлено: 13:33, 22-08-2020 | #6


Новый участник


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

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


Uragan66,

куда вписывать я понял, но он не как не хочется запускаться, запускал повершелл в папке с прогой где скрипт лежит, вообще не реагирует или ошибки ползут, (не распознан как имя командлета и там бла бла еще че то там.).

но мне такой способ не подходит, надо cmd либо vbs, powershell не как не запустить, так как приложение будет стартовать следом за основным файлом и следить когда он завершиться, а после удалит файл.

Отправлено: 13:55, 22-08-2020 | #7


Новый участник


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

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


Запустить удалось, погуглил , но программа не умеет запускать его в повершел, а запускает в блокноте просто) и прописывал даже powershell -command .\test.ps1, все равно в блокноте, нужен такой же вариант только в cmd-bat-vbs

Отправлено: 14:33, 22-08-2020 | #8


Старожил


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

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


Logonius, впишите в представленный код актуальные значения переменных, сохраните как test.ps1
Рядом создайте батник с любым именем и таким кодом:
Код: Выделить весь код
@echo off

SetLocal EnableExtensions

set "ps=" & for %%X in (powerShell.exe) do set "ps=%%~$PATH:X"
if not defined ps set "ps=%systemRoot%\system32\windowsPowerShell\v1.0\powerShell.exe"

For /F "UseBackQ delims=" %%a in (`"cmd /c "
  "%ps%" -ExecutionPolicy ByPass -NoProfile -command "./test.ps1"
""`) do (
  echo %%a
)

exit /b
Запускайте скрипт PS этим батником.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:38, 22-08-2020 | #9


Новый участник


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

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


Uragan66, шикарно, огромное спасибо, работает, а можно батник в exe конвертировать?, будет работать, просто мне надо чтоб он тихо в фоне включался, а так CMD окно вылазит.

Отправлено: 16:26, 22-08-2020 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Delphi - [решено] запуск программы с параметрами и ожидание ее закрытия muslimdogger Программирование и базы данных 3 24-08-2015 23:20
Проверка запущенного процесса Anarasius AutoIt 2 25-06-2014 11:39
.NET - Ожидание завершения процесса Efsey Программирование и базы данных 11 24-11-2010 19:16
Java - Отслеживание состояния запущенного процесса EvgeniyQQQ Программирование и базы данных 15 02-10-2007 13:20
А можно для уже запущенного процесса сменить user-a ? ukms Программирование и базы данных 6 23-10-2002 13:51




 
Переход