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

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

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


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

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


очень извиняюсь, все еще разбираюсь только, немоглиб вы для моего понимания разъяснить что да как

Set "FilePrg=C:\Windows\System32\notepad.exe"
Set "FileSee=Z:\Soft_In\файл базы который периодически обновляется.dbf"
Set "FileLog=Z:\Soft_In\файл базы который периодически обновляется.dbf.log"

с этим все понятно это в переменные вставляются пути на программу, отслеживаемой базой, и лог с датой временем (флаг) для сравнения

For %%e In ("%FilePrg%") Do Set "Exe=%%~nxe" -это что за действие, проверка на запущенность программы?
For %%t In ("%FileSee%") Do Set "DateTimeSee=%%~tt" -это как я догадываюсь вытаскивание даты времени отслеживаемого файла

Set "DateFileOld="
If Exist "%FileLog%" Set /P DateFileOld=<"%FileLog%" - это как я понял если файл лог есть то в переменную DateFileOld помещается время из файла лога
If "%DateTimeSee%"=="%DateFileOld%" Exit /B 0 - тут происходит сравнение текущего времени и из переменной DateFileOld, если одинаково то просто закрывается.

:Begin
>nul 2>&1 (TaskList /Fi "ImageName Eq %Exe%" |Find /I "%Exe%" && (TASKKILL /IM "%Exe%" &GoTo :Begin)) -тут как я понял в общих чертах цикл по убиванию процесса, но структура команд не совсем понял

>"%FileLog%" (Echo %DateTimeSee%) -это как я понял помещение в файл лога нового времени
Start " " "%FilePrg%" - запуск программы с переменной FilePrg

Поправите меня если я неправильно понял,у меня батник который есть просто закрывает TASKKILL notepad , как я понял это не оптимально и процесс может иногда оставаться..
если делать перенаправление, чтобы не в этом батнике закрывалось а запускался другой батник который закрывает и запускает программу.

:Begin
>nul 2>&1 (TaskList /Fi "ImageName Eq %Exe%" |Find /I "%Exe%" && (TASKKILL /IM "%Exe%" &GoTo :Begin)) не нужно писать,

а после кода >"%FileLog%" (Echo %DateTimeSee%)
пишу вызов другого батника? например
call killer.bat

Exit /B 0

Отправлено: 11:45, 30-08-2021 | #5