FreeFileSync 一款开源的文件同步软件

FreeFileSync 用户手册:

宏指令

宏指令可以同步有类似目录结构的多个文件或目录。宏指令的开头和结尾都必须是% 。除了处理时间和日期的宏指令外,还可以使用系统变量

内部宏指令

宏指令 示例 格式
%Date% 2016-12-31 [YYYY-MM-DD]
%Time% 112233 [hhmmss]
%TimeStamp% 2016-12-31 112233 [YYYY-MM-DD hhmmss]
 
%Year% 2016
%Month% 12 [01–12]
%MonthName% Dec short name
%Day% 31 [01–31]
 
%Hour% 11 [00–23]
%Min% 22 [00–59]
%Sec% 33 [00–59]
 
%WeekDay% 1 [1–7]
%WeekDayName% Mon short name
%Week% 52      [01–52] calendar week

系统环境变量 (Windows)

宏指令 示例
%AllUsersProfile% C:\ProgramData
%AppData% C:\Users\Zenju\AppData\Roaming
%ComputerName% Zenju-PC
%LocalAppData% C:\Users\Zenju\AppData\Local
%ProgramData% C:\ProgramData
%ProgramFiles% C:\Program Files
%ProgramFiles(x86)% C:\Program Files (x86)
%Public% C:\Users\Public
%Temp% C:\Windows\Temp
%UserName% Zenju
%UserProfile% C:\Users\Zenju
%WinDir% C:\Windows

特殊文件夹 (Windows)

宏指令 示例
%csidl_Desktop% C:\Users\Zenju\Desktop
%csidl_Documents% C:\Users\Zenju\Documents
%csidl_Pictures% C:\Users\Zenju\Pictures
%csidl_Music% C:\Users\Zenju\Music
%csidl_Videos% C:\Users\Zenju\Videos
%csidl_Downloads% C:\Users\Zenju\Downloads
%csidl_Favorites% C:\Users\Zenju\Favorites
%csidl_Resources% C:\Windows\Resources
%csidl_QuickLaunch% C:\Users\Zenju\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch
%csidl_StartMenu% C:\Users\Zenju\AppData\Roaming\Microsoft\Windows\Start Menu
%csidl_Programs% C:\Users\Zenju\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
%csidl_Startup% C:\Users\Zenju\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\StartUp
%csidl_Nethood% C:\Users\Zenju\AppData\Roaming\Microsoft\Windows\Network Shortcuts
%csidl_Templates% C:\Users\Zenju\AppData\Roaming\Microsoft\Windows\Templates
 

备注: 以上大部分的系统变量会有对应的公共变量,比如 %csidl_Documents% 对应的公共变量是 %csidl_PublicDocuments%


额外提示: 你可以调用 bat 或者 cmd 脚本添加临时环境变量来完善 ffs_batch 同步配置文件的灵活性。

示例:

FreeFileSync 配置文件 C:\SyncJob.ffs_batch 包含一个宏变量 %MyVar% ,宏变量替换了目标文件夹的绝对地址,这个配置文件可以通过 cmd 文件来调用:
set MyVar=C:\Target
"C:\Program files\FreeFileSync\FreeFileSync.exe" C:\SyncJob.ffs_batch
::在同步过程中 %MyVar% 被替换成了 C:\Target 。

备注
set 设置的临时环境变量只存在于本次 cmd 脚本调用期间。 使用 start /wait 可以让后续的程序不受临时变量影响。