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

Показать сообщение отдельно

Ветеран


Contributor


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

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


я могу, остальное Вы прокомментировали правильно
Цитата zergnet:
For %%e In ("%FilePrg%") Do Set "Exe=%%~nxe" -это что за действие, проверка на запущенность программы? »
Это способ из пути "FilePrg=C:\Windows\System32\notepad.exe" выделить имя Exe файла, которое я затем ищу в процессах.
Цитата zergnet:
(TaskList /Fi "ImageName Eq %Exe%" |Find /I "%Exe%" »
Анализирую, запущен ли процесс, имя которого я получил; если он успешно найден (&&), пытаюсь его убить пока он отображается. Возможно, неплохо бы перед &GoTo поставить несколько секунд ожидания (см. timeout /?), но тут уж надо более тонкое понимание Вашей задачи. Я пытаюсь гарантированно убить процесс и избежать в последующем наличие дубликата процесса. Возможно, это паранойя.
Цитата zergnet:
а после кода >"%FileLog%" (Echo %DateTimeSee%)
пишу вызов другого батника? например
call killer.bat »
Телепатнуть, что в том батнике, не берусь, поэтому его смысл в рамках заявленной Вами задачи для меня великая тайна. Но, ИМХО, даже если он Вам нужен, лучше его оформить в моём батнике процедурой, чтобы не плодить лишний батник и с ним поводы ошибиться в путях вызова. Например:
Код: Выделить весь код
 
     .......
     .......
     Call :killer  "%FilePrg%"
     .......
     .......
Exit /B 0

:killer 
     Echo %1  %~nx1
     .................
     .................
Exit /B 0
И, общее рассуждение, недоговоренность в постановке задачи обычно вылазит всем боком.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:35, 30-08-2021 | #6