# Macros

All directory paths may contain macros that are expanded during synchronization. The beginnings and ends of each macro are marked by a % character. In addition to special macros handling time and date, the operating system's environment variables may also be used.

## Internal macros

Macro | Example
--- | ---
%date% | 2016-12-31 format: [YYYY-MM-DD]
%time% | 112233 format: [hhmmss]
%timestamp% | 2016-12-31 112233 format: [YYYY-MM-DD hhmmss]
%year% | 2016
%month% | 12
%day% | 31
%hour% | 11
%min% | 22
%sec% | 33
%weekday% | Monday (day of the week)
%week% | 52 (calendar week)

## Environment variables (Windows)

Macro | Example
--- | ---
%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

## Special folder locations (Windows)

Macro | Example
--- | ---
%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

Note: Most macros listed here also have a variant for public folders, e.g. %csidl_Documents% has %csidl_PublicDocuments%.

Hint: You can add a flexibility to an ffs_batch configuration file by creating new temporary environment variables in a bat or cmd file that are evaluated by FreeFileSync at runtime:

## Example:

The FreeFileSync batch file C:\SyncJob.ffs_batch contains macro %MyVar% instead of an absolute target folder and is invoked by a cmd file:

set MyVar=C:\Target
"C:\Program files\FreeFileSync\FreeFileSync.exe" C:\SyncJob.ffs_batch
::%MyVar% is resolved as C:\Target during synchronization
Note
Temporary environment variables created with the set command are only valid if the synchronization is started by calling the FreeFileSync executable directly. Using start /wait would create a new program context without these temporary variables.