I'm not use a windows scheduler for some reasons.
BAT script is ease way for me.
And I decided to share this solution with you.
Features:
* small memory used, because running just only one cmd process in idle
* no need RTS, just only FFS
* save your hdd, don't fuck it every xxx seconds, how in RTS
* fastest changing script commands without GUI like 'win scheduler' (usability = 0)
* all jobs commands in single place
This is best solution if you need to sync more disks.
1 Make file backup.bat
2 Insert to file this code:
@ECHO off
CLS
ECHO %date%
REM any start text on each iteration, sample:
ECHO "sync start"
REM job code "FreeFileSync.exe full path" "your *.ffs_batch job file full path"
REM next job
REM ...
REM next job
REM sample:
ECHO "job1 start"
"c:\Program Files\FreeFileSync\FreeFileSync.exe" "c:\jobs\job1.ffs_batch"
ECHO "job1 start"
"c:\Program Files\FreeFileSync\FreeFileSync.exe" "c:\jobs\job2.ffs_batch"
ECHO "job1 start"
"c:\Program Files\FreeFileSync\FreeFileSync.exe" "c:\jobs\job3.ffs_batch"
REM any end text on each iteration, sample:
ECHO "sleep for 1 day"
REM TIMEOUT /T x, where x in seconds, for 1 day = 60*60*24, sample:
TIMEOUT /T 86400
CALL backup.bat
3 save backup.bat file
4 Select "auto-close" for your job: https://freefilesync.org/manual.php?topic=schedule-batch-jobs
5 start backup.bat
Next time i write how make script with hourly and dayly planning.
Schedule auto sync on windows (BAT script)
- Posts: 7
- Joined: 24 Apr 2018
- Posts: 7
- Joined: 24 Apr 2018
Simple multi-pc, no-break script with hourly planning.
Set your values of PC_NAME_X, HOUR_X, JOB_PATH_X_X.
@ECHO off
SETLOCAL enableextensions enabledelayedexpansion
:LOOP
(
CLS
SET currentDate=%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%
SET currentTime=%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%
SET currentHour=%TIME:~0,2%
ECHO !currentDate! / !currentTime! / %COMPUTERNAME%
IF "%COMPUTERNAME%"=="PC_NAME_1" (
IF "!currentHour!"=="HOUR_1" (
ECHO job 1 start
"c:\Program Files\FreeFileSync\FreeFileSync.exe" "JOB_PATH_1_1"
ECHO job N start
"c:\Program Files\FreeFileSync\FreeFileSync.exe" "JOB_PATH_1_N"
) ELSE (ECHO job start at HOUR_1)
)
IF "%COMPUTERNAME%"=="PC_NAME_N" (
IF "!currentHour!"=="HOUR_N" (
ECHO job 1 start
"c:\Program Files\FreeFileSync\FreeFileSync.exe" "JOB_PATH_N_1"
ECHO job N start
"c:\Program Files\FreeFileSync\FreeFileSync.exe" "JOB_PATH_N_N"
) ELSE (ECHO job start at HOUR_N)
)
TIMEOUT /T 3600 /NOBREAK
)
GOTO LOOP
ENDLOCAL
Set your values of PC_NAME_X, HOUR_X, JOB_PATH_X_X.
@ECHO off
SETLOCAL enableextensions enabledelayedexpansion
:LOOP
(
CLS
SET currentDate=%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%
SET currentTime=%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%
SET currentHour=%TIME:~0,2%
ECHO !currentDate! / !currentTime! / %COMPUTERNAME%
IF "%COMPUTERNAME%"=="PC_NAME_1" (
IF "!currentHour!"=="HOUR_1" (
ECHO job 1 start
"c:\Program Files\FreeFileSync\FreeFileSync.exe" "JOB_PATH_1_1"
ECHO job N start
"c:\Program Files\FreeFileSync\FreeFileSync.exe" "JOB_PATH_1_N"
) ELSE (ECHO job start at HOUR_1)
)
IF "%COMPUTERNAME%"=="PC_NAME_N" (
IF "!currentHour!"=="HOUR_N" (
ECHO job 1 start
"c:\Program Files\FreeFileSync\FreeFileSync.exe" "JOB_PATH_N_1"
ECHO job N start
"c:\Program Files\FreeFileSync\FreeFileSync.exe" "JOB_PATH_N_N"
) ELSE (ECHO job start at HOUR_N)
)
TIMEOUT /T 3600 /NOBREAK
)
GOTO LOOP
ENDLOCAL