You will find below the Echosync documentation, in the form of frequently asked questions.
Need some help? Before requesting technical support, please make sure that the answer to your question is not already on this page. If you wish to report a bug, please follow the recommendations in this article: How to report a bug efficiently?
Technical support is provided free of charge, by the author of Echosync, on his free time. If you want to thank him for his service, you can make a donation via PayPal.
Echosync has the following limits and constraints:
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.
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.
To use Echosync in portable mode, just 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.
Windows SmartScreen considers as suspicious files whose reputation and safety, depending on the number of downloads of the file in question, has not yet been established. This is, by definition, the case for any newly released file. As a result, each time Echosync is updated, and for a few days thereafter, some rather alarming alerts may be displayed during installation:
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 Run anyway button will install Echosync.
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.
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 subdirectory. 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:
trueto disable Echosync or Echocli automatic crash reporting, otherwise
trueto disable automatic sending of Echosync version number, and Windows version and language, at Echosync or Echocli startup, otherwise
trueif files with the system attribute are to be ignored during comparison and synchronization operations, otherwise
The following Echosync-specific advanced parameter is available in the GuiSettings.json file:
trueto automatically check for the availability of a new version at Echosync startup, otherwise
Once you've modified the desired parameters in the JSON files, simply save them. Echosync takes account of the changes immediately.
**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.
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 synchronisation modes can be set directly in the main window of the software.
With the command line
A synchronisation profile can be created from the command line using Echocli's
create command, passing the desired options as parameters.
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"
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 synchronisation profile named "Super Project" is created with the specified description, enabling all synchronisation options so that the destination folder mirrors the source folder.
It is possible to create a synchronisation 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.
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
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*.
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
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"
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 synchronisation which are not likely to cause data loss in the destination.
The synchronization profiles are stored in a 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.
**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.
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":
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.
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>
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.
One possible solution is to use the WebDAV protocol to access the smartphone files. This requires to connect the smartphone on the same network as the computer running Echosync. The smartphone must therefore be connected to your local network via WiFi. Then, you need to use a WebDAV server on the smartphone. You can find several of them on mobile application stores.
Under Android, for example, you can use the WebDAV Server app available on the Google Play Store. Once the app is launched and the WebDAV server is initialized, please note the file server address.
In this example, the server is available at
http://192.168.1.18:8080. To access this file server from a Windows application, rewrite the URL as
\\[IP_ADDRESS]@[PORT]\DavWWWRoot, in this case
\\192.168.1.18@8080\DavWWWRoot. It is enough to complete the path with the name of the folders and sub-folders composing the targeted tree, for example,
\\192.168.1.18@8080\DavWWWRoot\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.
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.
The Echocli commands
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 cancelled cleanly.
The result of the comparison is immediately shown to the user by displaying a future view of the destination folder in the console.
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 │ ╰──────────────────────────────────────────┴───────┴─────────╯
Echosync proceeds by comparison, by detecting the differences relative to the differences in the data:
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 subdirectory of the application.
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 partition||Timestamp of the file after copying on a FAT partition|
|7 h 31 min 0 s 000 ms||7 h 31 min 0 s 000 ms|
|7 h 31 min 0 s 001 ms||7 h 31 min 2 s 000 ms|
|7 h 31 min 1 s 000 ms||7 h 31 min 2 s 000 ms|
|7 h 31 min 1 s 999 ms||7 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.
Echosync does not have its own programmer. This would have implied to have a resident program in memory at all times to trigger the synchronizations, increasing the memory consumption and the 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 that you 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, being specified that wildcards are 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.
Echosync.exe NAS* profile1 "profile 2"
It is possible to start Echosync in the so-called "silent" mode. This mode hides the splash screen and automatically reduces the program window in 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.
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
sync are used.
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.
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
/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 PowerShell or DOS script.
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.
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.