Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Выполнить условие (http://forum.oszone.net/showthread.php?t=333125)

MI-5 12-02-2018 13:07 2797495

Выполнить условие
 
Добрый день. Прочитал эту тему, но там чёрт с этими условиями ногу сломит.
Задача: в папке C:\Users\1\AppData\Roaming\LAN Messenger есть файл LAN Messenger.ini, а также папка Backup, в которой тоже есть файл LAN Messenger.ini. Требуется проверить размер файла в самой папке и если он отличается от 4096 байт, то заменить его файлом из папки Backup и перезапустить lmc.exe, находящийся по пути c:\Program Files\LAN Messenger\lmc.exe (наверное, на x64 ОС будет c:\Program Files (x86)\LAN Messenger\lmc.exe).

Нашёл только частями:
Заменить файл (для Windows 7):
Код:

copy /y "C:\Users\1\AppData\Roaming\LAN Messenger\backup\LAN Messenger.ini" "C:\Users\1\AppData\Roaming\LAN Messenger\LAN Messenger.ini"
Перезапустить программу:
Код:

taskkill /f /IM lmc.exe
cd "c:\Program Files\LAN Messenger\"
START lmc.exe

Но требуется повесить этот bat файл в планировщик, чтобы он висел всё время в процессах и каждые например полчаса проверял размер файла. У меня с заменой получилось как-то так:
Код:

@echo off
chcp 866 >nul
set time=15
:loop

copy /y "C:\Users\1\AppData\Roaming\LAN Messenger\backup\LAN Messenger.ini" "C:\Users\1\AppData\Roaming\LAN Messenger\LAN Messenger.ini"

ping 127.0.0.1 -n %time% >nul
Goto :loop

Соответственно, как ввести проверку на размер и всё это дело объединить в один файл? Заранее спасибо.

DJ Mogarych 14-02-2018 20:06 2797988

Можно посмотреть в сторону robocopy с ключом /mon, который умеет следить за объектом.


Время: 23:00.

Время: 23:00.
© OSzone.net 2001-