Имя пользователя:
Пароль:
 

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

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


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

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


alpap, На NirCmd пал выбор из-за переменной ~$currdate.TimeFormat$, можно и с частичным использованием…
Есть сервер ModBusSrv.exe, который в процессе своей работы создает и пишет базу log.dat. Со временем log.dat разрастается до огромных размеров… Необходимо раз в месяц «резать» базу. Задача написать скрипт который
  1. Завершает процесс ModBusSrv.exe
  2. Ждет завершения процесса ModBusSrv.exe
  3. Переименовывает log.dat в log_dd_mm_yyyy.dat
  4. Проверяет наличие файла log_dd_mm_yyyy.dat
  5. Запускает ModBusSrv.exe
  6. Запись результата работы скрипта в >"%~dp0ren_log.log"
Код: Выделить весь код
@echo off
"%~dp0cmdow.exe" @ /HID
:no
nircmd.exe killprocess ModBusSrv.exe
nircmd.exe waitprocess ModBusSrv.exe
nircmd.exe execmd ren "log.dat" "log_~$currdate.dd_MM_yyyy$.dat"
nircmd.exe wait 3000
nircmd.exe execmd if not exist "log_~$currdate.dd_MM_yyyy$.dat" goto :no
start "" /d "%~dp0" /b "%~dp0ModBusSrv.exe"
exit
Скрипт запускается планировщиком задач.
Так работает, но хочется более правильного решения, и запись результата работы скрипта в >"%~dp0ren_log.log"

Последний раз редактировалось lSVl, 05-02-2018 в 10:58.

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

Отправлено: 10:15, 05-02-2018 | #5