Нужно было по-быстрому организовать резервирование пользовательских файлов в ОС Windows, без привлечения коммерческих продуктов.
1. Подключил smb шару как сетевой диск X:
2. Написал следующий bat сценарий:
@echo off
::присваеваем переменной xcd значение текущей даты в формате подходящем для xcopy
set xcd=%date:~3,2%-%date:~0,2%-%date:~6,4%
::считываем из файла date значение даты создания последней резервной копии
for /f %%i in (X:\date) do set pd=%%i
::если значение даты создания последней резервной копии отсутствует, создаём полную копию, если присутствует резервируем все файлы старше даты создания последней резервной копии
if not defined pd (xcopy "C:\users\username" X:\full\ /Y /V /Z /E /D) else (xcopy "C:\users\username" X:\%xcd%\ /Y /V /Z /E /D:%pd%)
::передаём файлу date значение даты создания резервной копии
echo %xcd%>X:\date
exit /b
3. Для сокрытия окна вывода терминала, запускается bat таким jscript:
::присваеваем переменной xcd значение текущей даты в формате подходящем для xcopy
set xcd=%date:~3,2%-%date:~0,2%-%date:~6,4%
::считываем из файла date значение даты создания последней резервной копии
for /f %%i in (X:\date) do set pd=%%i
::если значение даты создания последней резервной копии отсутствует, создаём полную копию, если присутствует резервируем все файлы старше даты создания последней резервной копии
if not defined pd (xcopy "C:\users\username" X:\full\ /Y /V /Z /E /D) else (xcopy "C:\users\username" X:\%xcd%\ /Y /V /Z /E /D:%pd%)
::передаём файлу date значение даты создания резервной копии
echo %xcd%>X:\date
exit /b
3. Для сокрытия окна вывода терминала, запускается bat таким jscript:
new ActiveXObject('WScript.Shell').Run('C:\\users\\username\\backup.bat',0,false)