Skip to content

Echosync Documentation

Start with Echosync

What are the limits and constraints of Echosync?

Echosync has the following limits and constraints:

  • Echosync requires administrator rights to synchronize files locked by another process (VSS). Some features may be disabled if Echosync is started without administrator rights.
  • Echosync is a synchronization software oriented “folders” and not “files” or “library”. The level of granularity being the directory (the root of a volume included), it is not possible to exclude some files contained in a source folder from synchronization.
  • Echosync does not keep multiple versions of the same file. It is therefore not possible to “go back in time” by retrieving a version prior to the last synchronization. However, it is possible to create multiple profiles targeting the same source folder and synchronize them alternately.
  • Echosync is a unidirectional synchronization software, which means that changes always go from the source (which can be read-only) to the destination. While this mode of operation has the merit of simplicity, it may not meet all needs. An alternative is to create two profiles by reversing the source and destination.

In which languages is Echosync available?

Echosync is available in English, French, Italian, Spanish, German, Chinese, Dutch and Russian. By default, Echosync starts in the language of Windows if it is available, and in English if not.

The language used can be changed at any time in the Options menu of Echosync. Echocli also takes this setting into account for its display.

Candidates interested in helping with the translation of Echosync are invited to contact the technical support. Thanks to its volunteer users, Echosync is also available in Italian, Spanish, German, Chinese, Dutch and Russian.

What is the difference between Echosync.exe and Echocli.exe?

Echosync has a graphical interface for ease of use and accessibility.

Echocli is a command line program. It is recommended to use it with a modern command line interpreter supporting Unicode characters such as Windows Terminal.

How to use and update the portable version of Echosync?

To use Echosync in portable mode, simply unzip the Echosync archive to the location of your choice (like a USB key), avoiding choosing a folder that requires administrator privileges to write to (like the Program Files folder).

Echosync comes with a PowerShell script for automatic updates. During the update, the old folder is renamed. You can safely delete it after making sure that the new version is fully functional.

My security software tells me that Echosync could be dangerous. What should I do?

Windows SmartScreen and many antivirus programs consider files to be suspicious if their reputation and safety, depending on the number of downloads of the file in question, have not yet been established. This is, by definition, the case for any newly released file. The highly questionable behavior of Windows SmartScreen (which is not as smart as its name suggests) is known and seems assumed by Microsoft itself. As a result, each time Echosync is updated, and for a few days afterward, rather alarming alerts may be displayed upon installation:

Windows SmartScreen Alert

For the most zealous antivirus products on the market, the period of mistrust may even last several months, until the publisher is informed of the false positive.

If Echosync has been downloaded from a reliable source such as this site, or via the command winget install SylvainRougeaux.Echosync, this alert can be safely ignored. The more wary or worried can test the Echosync installation file on VirusTotal, which uses over 70 different antivirus engines.

For Windows SmartScreen, the Run Anyway button will install Echosync. As for antivirus programs, they all have options for authorizing the execution of software considered safe by the user.

A permanent solution would be to electronically sign Echosync binaries with an electronic code-signing certificate, but these are particularly expensive and have to be renewed periodically. Increases in the price of these certificates (x4 in 2023) have overcome the goodwill of Echosync’s volunteer developer.

What advanced settings are available?

Some advanced Echosync or Echocli settings cannot be modified via the user interface. These settings are stored in JSON files in the application’s Profiles directory. They should be modified using a text editor (e.g. Notepad or Visual Studio Code). Only modify them if you know what you’re doing.

The following advanced settings, common to Echosync and Echocli, are available in the AdvancedSettings.json file:

  • DisableCrashReporting : true to disable Echosync or Echocli automatic crash reporting, otherwise false (default value;: false);
  • DisableTelemetry : true to disable automatic sending of Echosync version number, and Windows version and language, at Echosync or Echocli startup, otherwise false (default value: false);
  • IgnoreSystemFiles : true if files with the system attribute are to be ignored during comparison and synchronization operations, otherwise false (default value: true).

The following Echosync-specific advanced parameter is available in the GuiSettings.json file:

  • CheckUpdatesOnStartup : true to automatically check for the availability of a new version at Echosync startup, otherwise false (default value: true).

Once you’ve modified the desired parameters in the JSON files, simply save them. Echosync takes account of the changes immediately.

Can I customize the look and feel of Echosync?

Echosync offers a number of graphic themes to suit every user’s taste. Themes can be selected from the Options menu. You can switch between themes using the Alt + Left or Alt + Right keyboard shortcut, and see the results immediately.

Synchronization profiles

How to create a synchronization profile?

With the graphical user interface

The user can create a new synchronization profile after filling in the fields in the Create a new synchronization profile window, which the user can open by clicking on the New… link in the top right corner of the software.

Window for creating a new synchronization profile

Echosync displays the list of loaded profiles, with for each of them, their name, source and destination directory, the date of their last synchronization, their status and a free description given by the user. The name and description of the profile can be modified at any time.

The desired synchronization modes can be defined directly under the profile name:

  • Copies in the destination folder the new files and directories in the source folder;
  • Deletes in the destination folder the deleted files and directories in the source folder;
  • Overwrites in the destination folder the modified files in the source folder, if they are newer than those in the destination folder;
  • Overwrites in the destination folder the modified files in the source folder, even if they are older than those already in the destination folder;
  • Renames or moves in the destination folder the renamed or moved files and directories in the source folder.

With the command line

A synchronization profile can be created from the command line using Echocli’s create command, passing the desired options as parameters.

Fenêtre de terminal
PS E:\Echocli\bin\x64\Debug> .\Echocli.exe create --help
DESCRIPTION:
Create a new sync profile for this computer
USAGE:
echocli create [name] [source] [destination] [OPTIONS]
ARGUMENTS:
[name] The sync profile name
[source] The source folder
[destination] The destination folder
OPTIONS:
-h, --help Prints help information
--description The sync profile description
--create Copies in the destination folder the new files and directories in the source folder
--delete Deletes in the destination folder the deleted files and directories in the source folder
--overwriteOlder Overwrites in the destination folder the modified files in the source folder, if they are newer than those already in the destination folder
--overwriteNewer Overwrites in the destination folder the modified files in the source folder, even if they are older than those already in the destination folder
--move Renames or moves in the destination folder the renamed or moved files and directories in the source folder
--safe Equals to "--create true --delete false --overwriteOlder true --overwriteNewer false --move true"
--mirror Equals to "--create true --delete true --overwriteOlder true --overwriteNewer true --move true"

For example: echocli create "Project X" C:\source D:\destination. If no option is passed as a parameter, as in this example, the --safe option is used by default.

In the example echocli create "Super Project" C:\source D:\destination --mirror --description "Mirror of SP on USB key", a synchronization profile named “Super Project” is created with the specified description, enabling all synchronization options so that the destination folder mirrors the source folder.

It is possible to create a synchronization profile interactively using the create command with no arguments or options. All you have to do is to let yourself be guided by the questions that are asked.

Fenêtre de terminal
PS E:\Echocli\bin\x64\Debug> .\Echocli.exe create
[1/9] Enter a name for the sync profile: My profile
[2/9] Enter a source folder for the sync profile: C:\source
[3/9] Enter a destination folder for the sync profile: D:\destination
[4/9] Do you want to copy in the destination folder the new files and directories in the source folder? [y/n] (y): y
[5/9] Do you want to delete in the destination folder the deleted files and directories in the source folder? [y/n] (n): y
[6/9] Do you want to overwrite in the destination folder the modified files in the source folder, if they are newer than those already in the destination folder? [y/n] (y): y
[7/9] Do you want to overwrite in the destination folder the modified files in the source folder, even if they are older than those already in the destination folder? [y/n] (n): y
[8/9] Do you want to rename or move in the destination folder the renamed or moved files and directories in the source folder? [y/n] (y): y
[9/9] Enter an optional description for the sync profile (): My description
╭─ My profile (e792fc31-4a93-4198-a397-c32405fbd3c4) ───────────────────────────────────────────────────╮
│ │
│ Source Folder: C:\source\ → The source folder is unavailable. │
│ Destination Folder: D:\destination\ → The destination folder is unavailable. │
│ Description: My description │
│ │
│ Sync new items: Yes │
│ Sync deleted items: Yes │
│ Sync modified items, newer in the source: Yes │
│ Sync modified items, older in the source: Yes │
│ Sync moved or renamed items: Yes │
│ │
│ Last Sync: never synchronized yet │
│ │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯
The sync profiles have been saved successfully.

The available sync profiles can be viewed using the list command.

Fenêtre de terminal
PS E:\Echocli\bin\x64\Debug> .\Echocli.exe list --help
DESCRIPTION:
Show sync profiles for this computer
USAGE:
echocli list [profiles] [OPTIONS]
ARGUMENTS:
[profiles] The sync profile names to show, wildcard pattern (*, ?) can be used
OPTIONS:
-h, --help Prints help information
--noCheck Do not check if sync profiles are ready to sync, show basic informations about sync profiles faster

For example, to display all sync profiles whose name starts with “my”, simply enter echocli list my*.

Fenêtre de terminal
PS E:\Echocli\bin\x64\Debug> .\Echocli.exe list my*
╭─ My profile (e792fc31-4a93-4198-a397-c32405fbd3c4) ───────────────────────────────────────────────────╮
│ │
│ Source Folder: C:\source\ → The source folder is unavailable. │
│ Destination Folder: D:\destination\ → The destination folder is unavailable. │
│ Description: My description │
│ │
│ Sync new items: Yes │
│ Sync deleted items: Yes │
│ Sync modified items, newer in the source: Yes │
│ Sync modified items, older in the source: Yes │
│ Sync moved or renamed items: Yes │
│ │
│ Last Sync: never synchronized yet │
│ │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯

Since the wildcard ”*” is the default, the echocli list command displays all available sync profiles.

Once created, a sync profile can be modified using the configure command.

Fenêtre de terminal
PS E:\Echocli\bin\x64\Debug> .\Echocli.exe configure --help
DESCRIPTION:
Configures the specified sync profile
USAGE:
echocli configure [profile] [OPTIONS]
ARGUMENTS:
[profile] The sync profile name to configure
OPTIONS:
-h, --help Prints help information
--name The sync profile name
--source The source folder
--destination The destination folder
--description The sync profile description
--create Copies in the destination folder the new files and directories in the source folder
--delete Deletes in the destination folder the deleted files and directories in the source folder
--overwriteOlder Overwrites in the destination folder the modified files in the source folder, if they are newer than those already in the destination folder
--overwriteNewer Overwrites in the destination folder the modified files in the source folder, even if they are older than those already in the destination folder
--move Renames or moves in the destination folder the renamed or moved files and directories in the source folder
--safe Equals to "--create true --delete false --overwriteOlder true --overwriteNewer false --move true"
--mirror Equals to "--create true --delete true --overwriteOlder true --overwriteNewer true --move true"

The command echocli configure test --name "new name" --safe allows, for example, to change the name of the profile “test” to “new name” and to enable modes of synchronization which are not likely to cause data loss in the destination.

Where are the synchronization profiles stored?

The synchronization profiles are stored in an XML file, named as the machine that created it, with an XBP extension (XML Backup Profiles). This file is stored in the Profiles subdirectory of the application (in portable mode) or in the %LOCALAPPDATA%\Echosync\Profiles folder (if Echosync is installed on the machine).

The synchronization profiles are associated with the name of the machine that created them. In other words, only the profiles corresponding to the machine running the software are displayed. As Echosync can be used in portable mode (e.g. directly from the destination media itself), it was necessary to manage the case of profiles created on separate PCs.

How to delete the synchronization profiles?

With the graphical user interface

Selected profiles (Ctrl+click for a non-contiguous multiple selection, and Shift+click for interval selection) can be deleted by clicking on the Delete link.

Deleting a synchronization profile does not delete any files.

With the command line

Sync profiles can be removed with Echocli’s remove command, passing their names as parameters, being specified that wildcards are correctly interpreted.

Fenêtre de terminal
PS E:\Echocli\bin\x64\Debug> .\Echocli.exe remove --help
DESCRIPTION:
Remove the specified sync profiles
USAGE:
echocli remove [profiles] [OPTIONS]
ARGUMENTS:
[profiles] The sync profile names to remove, wildcard pattern (*, ?) can be used
OPTIONS:
-h, --help Prints help information
-f, --force Removes the sync profiles without confirmation

For example, to delete the profile “My profile”:

Fenêtre de terminal
PS E:\Echocli\bin\x64\Debug> .\Echocli.exe remove "my profile"
Do you really want to remove the sync profile "My profile"? [y/n] (n): y
The sync profile "My profile" has been successfully removed.
The sync profiles have been saved successfully.

How to exclude some subfolders of the source folder from synchronization?

It is possible to exclude some subfolders contained in the source folder from synchronization. To do so, it is necessary to edit the XML file in which the profiles are saved. You can then add each subfolder to be ignored during synchronization by adding it to the XML tag SourceFoldersExclusion of the corresponding profile, as follows:

<SourceFoldersExclusion>
<string>C:\Source\Absolute path to a sub-directory of the source to be ignored</string>
<string>Subfolder\Relative path to a directory to be ignored</string>
</SourceFoldersExclusion>

How to synchronize from or to a folder on a smartphone?

By connecting the smartphone in UMS mode

The easiest way to access the memory (internal or memory card) of a smartphone is to “mount” it on the computer in UMS mode (USB mass storage device class). Thus, access to the smartphone’s memory is done in the same way as any other drive such as a USB key, either with the Windows file explorer or Echosync.

Unfortunately, the UMS mode is less and less available on recent smartphones, in favor of the much more limited MTP mode (Media Transfer Protocol): access to media files only, no mount point for universal and standard access, etc. So you’ll have to find a way to access more freely to the smartphone files.

Using the mobile application Link with Windows

Microsoft has integrated a feature into Windows 11 that allows seamless access to a smartphone’s folders and files from within file explorer. To activate this feature, go to Settings, Bluetooth and devices, Mobile devices and Manage devices. An option will make the smartphone’s files visible in the file explorer and therefore in Echosync.

Using a WebDAV server on the smartphone

Finally, it is possible to use the WebDAV protocol to access files on the smartphone. This requires the smartphone to be connected to the same network as the computer running Echosync. The smartphone must therefore be connected via WiFi to your local network. Next, you need to use a WebDAV server on the smartphone. Once the WebDAV server is up and running, please note the address of the file server. Let’s take the example of a server available at the address http://192.168.1.18:8080. To access this file server from a Windows application, rewrite the URL address as \\[IP_ADDRESS]@[PORT]\DavWWWRoot, in this case \\192.168.1.18@8080\DavWWWRoot. Simply fill in the path with the names of the folders and sub-folders making up the targeted tree structure, e.g. \\192.168.1.18@8080\DavWWRoot\DCIM\Camera to access the files and sub-folders contained in the DCIM\Camera folder. The full path can be used in Windows File Explorer or Echosync, as a source or destination folder.

Folder comparison and synchronization

How to launch a comparison or synchronization operation?

With the graphical user interface

The Compare and Synchronize buttons are used to launch the comparison, and then if necessary the synchronization, of the source folder with the destination folder of the selected profiles.

The Pause and Cancel buttons are used to pause or cancel the current operation.

The result of the comparison is immediately displayed to the user, by showing a future view of the destination folder.

Comparison results

With the command line

The Echocli commands compare and sync are used to compare and synchronize the source folder with the destination folder of the sync profiles whose names are passed as parameters, it being specified that wildcards can be used.

It is possible to interrupt the current operation by sending the SIGINT signal with the Ctrl+C key combination. The current operations are then canceled cleanly.

The result of the comparison is immediately shown to the user by displaying a future view of the destination folder in the console.

Fenêtre de terminal
PS E:\Echocli\bin\x64\Debug> .\Echocli.exe compare nas-software
╭─ NAS-software (3beba0ec-ebd6-4d8a-af8c-e753400eb092) ───────────────────────────────────────────────────────────────────╮
│ │
│ Source Folder: D:\NAS\software\Sylvain\ │
│ Destination Folder: \\TOWER\software\Sylvain\ │
│ Description: Software synchronization to NAS │
│ │
│ Sync new items: Yes │
│ Sync deleted items: Yes │
│ Sync modified items, newer in the source: Yes │
│ Sync modified items, older in the source: Yes │
│ Sync moved or renamed items: Yes │
│ │
│ Last Sync: 2 months ago (19/02/2023 02:20:21) │
│ Sync Log Path: E:\Echocli\bin\x64\Debug\Profiles\3beba0ec-ebd6-4d8a-af8c-e753400eb092.log │
│ │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Warning: Traversation loop detection will not be available for [\\TOWER\software\Sylvain\].
📂 \\TOWER\software\Sylvain
└── 📂 Microsoft
└── 📂 Office 2021 ProPlus
├── 📄 ProPlus2021Retail.img → New file to copy (4 629 426 KB, 13/04/2023 23:15:38)
└── 📄 Votre clé d'activation Office 2021 Professionnel Plus (72019523).eml → New file to copy (56 KB, 13/04/2023 23:58:11)
╭──────────────────────────────────────────┬───────┬─────────╮
│ Process │ Count │ Size │
├──────────────────────────────────────────┼───────┼─────────┤
│ File or folder to rename or move │ 0 │ 0 byte │
│ Missing file or folder to delete │ 0 │ 0 byte │
│ Newer file to copy │ 0 │ 0 byte │
│ Older file to copy │ 0 │ 0 byte │
│ New file to copy or new folder to create │ 2 │ 4,42 GB │
╰──────────────────────────────────────────┴───────┴─────────╯

What kind of difference does Echosync detect?

Echosync proceeds by comparison, detecting the differences relative to the data:

  • Copies in the destination folder the new files and directories in the source folder. Files and folders not found in the destination, but present in the source, will be copied to the destination.
  • Overwrites in the destination folder the modified files in the source folder, if they are newer than those in the destination folder. These files and directories, which cannot be found in the source but are still present in the destination, will be deleted in the destination. Caution: this operation may result in data loss.
  • Overwrites files modified in the source folder in the destination folder, if they are more recent than those already present in the destination folder. These files, which are present in both the source and destination folders, but whose modification date in the source folder is more recent than in the destination folder, will be overwritten in the destination folder.
  • Overwrites in the destination folder the modified files in the source folder, even if they are older than those already in the destination folder. These files, which are present in both the source and destination folders, but whose modification date in the source folder is older than in the destination folder, will be overwritten in the destination folder. Caution: this operation may result in data loss.
  • Renames or moves in the destination folder the renamed or moved files and directories in the source folder. Those identical files present in the source and destination, but whose path differs because they have been renamed or moved in the source, will be moved and/or renamed in the destination. Attributes of read-only, hidden or system files that have changed in the source will be synchronized in the destination. Folder attributes are not synchronized.

By default, Echosync ignores files with the system attribute. It is possible to include these files by setting the IgnoreSystemFiles parameter to false in the AdvancedSettings.json configuration file, located in the Profiles directory.

Why are my files identified as different when they have not been modified?

Echosync relies on file modification dates to identify files that need to be updated. However, not all file systems have the same accuracy in time stamping and rounding beyond the second can occur when copying files.

For example, file timestamps on FAT drives (FAT16, FAT32, exFAT) are rounded to the nearest two seconds (even number) when the file is written to the drive. File timestamps on NTFS drives are rounded to the nearest 100 nanoseconds when the file is written to the drive. So when files are copied from an NTFS drive to a FAT drive, the file timestamp is rounded up to the next even second. This means that there can be a difference of up to 2 seconds in the date of modification of the file even though the file has not undergone any change in its contents.

This table illustrates this principle with some examples:

Timestamp of the file on an NTFS partitionTimestamp of the file after copying on a FAT partition
7 h 31 min 0 s 000 ms7 h 31 min 0 s 000 ms
7 h 31 min 0 s 001 ms7 h 31 min 2 s 000 ms
7 h 31 min 1 s 000 ms7 h 31 min 2 s 000 ms
7 h 31 min 1 s 999 ms7 h 31 min 2 s 000 ms

Similarly, the NTFS file system stores time values in UTC format, so they are not affected by changes in time zone or daylight saving time. The FAT file system stores time values based on the local time of the computer. For example, a file that is saved at 3:00pm PST in Washington is seen as 6:00pm EST in New York on an NTFS volume, but it is seen as 3:00pm EST in New York on a FAT volume.

While Echosync ignores millisecond differences by default, a difference of one second or more is considered a potential change. Therefore, it is recommended to avoid synchronizing folders between NTFS and FAT drives. FAT file systems that are intended to be used only under Windows will be conveniently converted or reformatted to the more efficient NTFS.

How to program the synchronizations?

Echosync does not have its own scheduler. This would have implied having a resident program in memory at all times to trigger the synchronizations, increasing memory consumption and machine startup time.

However, since synchronizations can be launched from the command line, it is relatively easy to automate synchronizations with the Windows task scheduler. It is recommended to use Echocli to schedule your synchronizations, although this is also possible with Echosync.

With the command line

The launching of synchronization operations with Echocli is documented above.

With the graphical interface

It is possible to give the names of the profiles as arguments to the Echosync executable, with wildcards correctly interpreted (e.g.: NAS* will launch the synchronization of all profiles starting with ‘NAS’). If profile names contain spaces, it is advisable to surround them with quotation marks when they are passed as arguments to Echosync.

Example: Echosync.exe NAS* profile1 "profile 2"

It is possible to start Echosync in “silent” mode. This mode hides the splash screen and automatically minimizes the program window to the taskbar. To do this, just pass the /silent argument on the command line.

It is also possible to define the Echosync behavior at the end of the synchronization operations.

How to detect synchronization errors?

Even after closing the program, it is possible to consult the synchronization log to check that the comparison and synchronization operations have been carried out correctly. Please note that if the size of the synchronization log exceeds 5 MB, it will be renamed (adding a timestamp in brackets) and a new log file will be created.

With the graphical interface

The Status column of the comparison report mentions, if applicable, the reason why the synchronization of an element could not be completed successfully.

It is possible to consult the log of previous operations by right-clicking on a profile and selecting the View synchronization log command.

With the command line

Any errors occurring during synchronization operations will be displayed in the console.

The location of the operation log is specified each time the Echocli commands list, compare and sync are used.

Can we launch the synchronization or the comparison of several profiles simultaneously?

If several profiles are selected in Echosync, or specified as parameters in Echocli, when the comparison or synchronization is started, the operations are performed sequentially. In Echosync, the status of the profiles mentions the delayed start of a comparison or synchronization operation.

A simultaneous start of operations can be forced by explicitly starting the desired operation for each profile. This is beneficial in terms of performance only in very rare circumstances. Indeed, there is no point in launching several synchronizations simultaneously if the maximum read/write rate of the storage medium used is reached or if the bandwidth of the connection used (USB 2 in particular) is saturated.

How to program the shutdown of the PC or the closing of Echosync at the end of the synchronization operations?

With the graphical interface

The Options menu allows you to choose an action to be performed once the synchronization operations are completed: shut down the computer, put it in hibernation or close Echosync (unconditionally or only if no error occurred during synchronization).

The automatic shutdown of the PC, the hibernation of the PC or the closing of Echosync can also be programmed from the start of the software by adding respectively the argument /shutdown, /hibernate, /exit or /exitonsuccess to the command line.

With the command line

Echocli does not have any specific option for automatically shutting down the PC at the end of synchronization operations. However, as Echocli is a command line program, it is possible to call the Windows tool shutdown.exe after Echocli in a shell script (.ps1, .bat, .cmd).

How can I automatically execute actions before or after a synchronization operation?

Echosync does not allow you to specify commands to be executed before or after a synchronization, such as closing or starting third-party software. However, it is possible to create a script in the language of your choice (e.g. PowerShell) which will itself call Echocli at the appropriate time with the right parameters.

Some files have been deleted by mistake due to incorrect handling. What can I do?

Echosync is a file synchronization software, not a data backup software, in the sense that it does not allow you to restore a previous version of a file in the event of an error that has led to data loss.

Note that files deleted by Echosync do not go into the recycle bin.

In the absence of a backup of lost data, it is always possible to attempt to use data recovery tools, such as Microsoft’s Windows File Recovery.