FastCopy ver4.2.0

2022/08/09 H.Shirouzu and FastCopy Lab, LLC.

Index

1. About
2. License
3. Environment
4. Installation
5. Usage & Main Window
6. Settings
7. Command Line
8. FcHash.exe
9. Warning
10. Support Forum/Latest Version
11. Misc (setting file, etc.)
12. History

1. About

FastCopy is the Fastest Copy/Backup Software on Windows.

It supports UNICODE and over MAX_PATH (260 characters) file pathnames.

It automatically selects different methods according to whether Source and DestDir are in the same or different HDD(or SSD).
Diff HDDReading and writing are processed respectively in parallel by separate threads.
Same HDDReading is processed until the big buffer fills. When the big buffer is filled, writing is started and processed in bulk.

Reading/Writing are processed with no OS cache, so other applications do not become slow.
It can achieve Reading/Writing performance that is close to the device limit.
Include/Exclude Filter (UNIX Wildcard style) can be specified. ver3.0 or later, Relative Path can be specified.
It runs fast and does not hog resources, because MFC is not used. (Designed using Win32 API and C Runtime only)

ver3.0 or later, FastCopy's settings file has been renamed from FastCopy.ini to FastCopy2.ini.

2. License

FastCopy/FcHash/fcp ver4.x License

Copyright 2004-2022 SHIROUZU Hiroaki All rights reserved.
Copyright 2018-2022 FastCopy Lab, LLC. All rights reserved.

Redistributing and using this software, commercial or non-commercial, is permitted if the following conditions are met:

1. Redistributions of this software must retain the above copyright notice, this list of conditions and the following disclaimer.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Using Library
xxHash Library Copyright (c) 2012-2020, Yann Collet All rights reserved.
License details.
OpenSSL Library Copyright (c) 1998-2022, The OpenSSL Project All rights reserved.
License details.

3. Environment

Windows 7/8/8.1/10/11
Windows Server 2012(&R2)/2016/2019/2022

4. Installation

Installation

Please run FastCopy3xx_installer.exe, and install it in a new directory.
If you want to install in USB memory or etc, please use "Extract" button in installer.
run with /h option, it shows the installer options. (/silent, /extract or etc)

Uninstallation

In Win7 or later, you can uninstall from "Apps & features (or Program and Features)".
Or you can use setup.exe located in the installed directory.
run with /r /silent option, it means silent uninstallation.

5. Usage & Main Window

Main window when minimized appears in task notification area.
When running, various statuses are displayed.
(Inside the file number's parentheses is the number of directories.)

Source / DestDir

FastCopy retains the history of 10 entries in Source/DestDir. (This can be increased or decreased in the Option | Main settings dialog.)
If you want to specify two or more files/dirs in the Source field, please describe a pathname line by line.
If you want to add files/dirs to the Source field by using drag and drop, simply drop while pushing CTRL.

You can also drag & drop to DestDir field.

The behavior depends on whether or not '\' is the end of DestDir.

1. The last character of DestDir is '\' Copy Source directory, including itself, to DestDir.
(DestDir\SourceDir\Contents_of_SourceDir)
2. The last character of DestDir is NOT '\' Copy Source directory's contents to DestDir.
(DestDir\Contents_of_SourceDir)
However, if multiple directories are specified in Source, the behavior will be changed to 1.

(mini tips) If you want to copy Source directory's contents to the DestDir that is specified drive root, please append "*" to Source directory.
For example, if Source is "C:\Folder1\*" and DestDir "D:\", the result is D:\(Contents_of_Folder1)

Operation mode

ModeDetail
Diff (No Overwrite) Copy if the same filename does not exist in destination.
Diff (Size/date) Copy if size or date is different, or if it does not exist (in default)
Diff (Newer) Copy if source file timestamp is newer or does not exist.
Copy (Overwrite) Always copy/overwrite all.
Sync (Size/date) Copy if size or date is different, or it does not exist.
In addition, delete all destination files/directories that do not exist in Source.
Move (Overwrite) Always copy/overwrite all and delete all copied source files.
(To change select "Move (Overwrite all)" → "Move (Size/date)" in the settings dialog.)
Delete Delete all files/dirs forcibly.

Buttons & Options

Execute The copy operation is executed. While executing, the button changes to "Cancel..." button.
- While pushing CTRL, the confirmation dialog is displayed.
Listing The files and directories list that will be copied and deleted are displayed. '+' means copying, and '-' means deleting.
- While pushing CTRL (button label "listing" → "listing+v"), compare the file pairs that will be skipped (except skipping by filter).
- While pushing Shift (and if filelog is enabled), write listing contents to filelog. (If FileDate/FileSize option in log settings is enabled, this information will be shown/written)
Buffer size Show the size(MB) of the main buffer for Read/Write operations. If it is clicked, setting dialog will be opened.
Speed Control Specify "Full Speed", "Auto Slow"(*1), "90%"~"10%", "Suspend".
If you feel it is hogging resources, it is recommended to set to "Auto Slow" (If mouse movement is detected, or active window is changed (and FastCopy window is not in the foreground), it will be slowed down).
If "Full Speed" is not selected, low process priority class is set.
(This setting is not saved by job manage)
NonStop Don't interrupt even if errors occur by Read/Write/Delete, and keep processing as much as possible.
(However, errors are displayed in the main window, and recorded in the error log.)
Verify Verify written files data by xxHash3 (MD5/SHA-1/SHA-256/xxHash).
(If you want to use MD5/SHA-1/SHA-256/xxHash, it can be selected in Copy/Move Options of settings.)
Action detail: Read(Src) → xxHash(Src) → Write(Dst) → Read(Dst) → xxHash(Dst) → Compare xxHash(Src/Dst) (All actions are processed in parallel as much as possible)

if verify error occurs, hash values of src/dest are shown, and it is renamed dest-filename with .fc_verify_err.
(Depending on the setting, it can be removed it instead of renaming)
VerifyInfoList (Shown while pushing CTRL key)
Enumerates files that contains the AltStream(:fc_verify) under the Source and show its contents.
(=The AltStream is added with verified-copy if "Add VerifyInfo" option is enabled.)

If you want to check VerifyInfoList immediately after verified-copy, it requires to use Settings → Swap Source ⇔ DestDir, because VerifyInfoList checks under the "Source" (not DestDir).
(If pushing Shift key in addition, this list will also be written in the file log.)
Estimate Display the estimated complete time. This will make FastCopy investigate files/dirs to be copied, before starting.
Start at once Start at once without waiting for other FastCopy instances executing to finish. (This button does not show when another FastCopy is not copying.) (parallel running)
(*1) It is slowed down if the FastCopy window is not in the foreground and mouse movement is detected, by waiting between I/O, changing process priority, changing I/O priority, and changing maximum I/O size.

ACL Copy Access Control List (ACL). (Only applicable to NTFS)
(It is recommended to use with Administrative privilege)
In addition, Extended Attribute(EA) will also be copied.
Alt Stream Copy Alternate Stream. (Only applicable to NTFS)
Wipe & Delete (prevent deleted files reviving) Rename filename and Overwrite random data before deleting. Alternate stream is not overwritten. If NSA method is checked in setting dialog, Overwriting Random data process runs twice, and overwriting NULL data process runs once.

Filter Options

It can Include/Exclude the copy target files/directories that match/unmatch by filters.
Select the "listing" button to confirm the copy target files/directories list.

Include Only files or directories that match the specified string (UNIX wildcard format is allowed) will be copied.
Include filter strings can be specified (UNIX wildcard format). (Note)
If you want to specify two or more strings, please use semicolon as separator.
If you want to specify directories, please add '\' to the end of directory name.

Ex1) *.txt → a.txt, 123.txt or etc files will match
Ex2) [^ax]bc → bbc or etc files will match, but not abc or xbc
Ex3) dir[0-9][234] → dir12 or etc will match, but not dir1 or dir10
Exclude Don't copy files/directories that match the specified strings.
The following filters are enabled when "Option" → "Show Extended filter" is checked.
FromDate Don't copy files with timestamps older than a specified date(format).
This can be specified by not only absolute format ("20090322" or "2016/09/26 12:30:56") but also by relative format (10 days before ... "-10D").
ToDate Don't copy files with timestamps newer than this specified date.
MinSize Don't copy the files with sizes that are smaller than the specified size.
High number can be abbreviated using K/M/G/T character (Kilo/Mega/Giga/Tera).
MaxSize Don't copy the files with sizes bigger than the specified size.

Note 1) In delete mode, it does not delete directories when "only files and not directories" are specified in the Include field.
Note 2) When one or more files are specified in the Include field, files that do not match are not copied.
Note 3) When one or more directories are specified in the Include field, directories that do not match are not copied.

Relative path filter If the first character of Include/Exclude string items is not '\', it will be Relative path filter. This mode is tail matching policy.
Example of the directory Include
SourceC:\dir\
Includesubdir[1-9]\xxx\
Match examples C:\dir\subdir2\xxx\
C:\dir\aaa\subdir3\xxx\
EffectMatched directories and all under them will be copied.
Example of the file Include
SourceC:\dir\
Includesubdir[1-9]\file.*
Match examples C:\dir\aaa\subdir2\file.txt
C:\dir\bbb\ccc\subdir3\file.doc
EffectMatched files will be copied.
Forward match filter If the start character of Include/Exclude string items is '\', it will be Forward match filter. This mode is head → tail matching policy.

For example, if Source is C:\aa\, and you want to exclude C:\aa\bb\cc\, Forward match filter is \bb\cc\.
Remove Source (C:\aa\) from the path you want to exclude (C:\aa\bb\cc\) and add \ at the beginning to indicate a forward match.
Example of the directory Include
SourceC:\dir\
Include\subdir[1-9]\xxx\
Match examples C:\dir\subdir2\xxx\
C:\dir\subdir3\xxx\
EffectMatched directories and all under them will be copied.
Note (unmatch example)C:\dir\aaa\subdir2\xxx\ ... different hierarchy.
Example of the file Include
SourceC:\dir\
Include\subdir[1-9]\file.*
Match examples C:\dir\subdir2\file.txt
C:\dir\subdir3\file.doc
EffectMatched files will be copied.
Note (unmatch example)C:\dir\aaa\subdir2\file.txt ... different hierarchy.
Absolute path filter If the first character of Inlcude/Exclude starts with a drive letter (for example, C:\) or a UNC path (for example,\ \server \volume\), it is an absolute path specification.
The absolute path must include the source path.
Internally, it is converted to a forward match specification. (The absolute path minus the following "Start point of filter check" is registered as a prefix match)
(Remarks)
Start point of filter check
If Source is either C:\src\, C:\src\file.txt or C:\src\dir*, the start point(beginning) of the filter check will be C:\src\

Include/Exclude filter(wildcard) format.
*Zero or more arbitrary characters
?One arbitrary character
[abc]One character in "abc"
[!abc]One character except "abc".
'^' can also be used instead of '!'.
[a-z]One character in "abc...xyz"
\'\' as Start character means Forward match filter. The middle of '\' is separator of path items. In addition, the end of '\' means "This is a filter item for directory". However, '\' in character class([]), it means escape character.


FromDate/ToDate filter format.
AbsoluteSpecify "YYYYMMDD[hhmmss]"(year/month/day/hours/minutes/seconds).
ex) "20090322" or "2016/09/26 12:30:56"
RelativeSpecify "+|- number W|D|h|m|s".
W|D|h|m|s means Weeks/Days/hours/minutes/seconds.
ex) "-12h" (This is case sensitive.)

Junction and SymLink

Junction(include MountPoint) and Symlink is supported in ver1.70 or later.
ModeDetails
Diff/Copy Copy Junction/Symlink itself.
If you want to change the copy Junction/Symlnk's target(not Junction/Symlnk itself), it can be changed in the options settings
Move Always move Junction/Symlink itself.
Delete Always delete Junction/Symlink itself.
HardLink can be reproduced as much as possible, when Copy/Move Options or /linkdest option is specified.
(The display of "TotalFiles:" changes from "number_of_files (number_of_dirs)" to "number_of_files / number_of_created_hardlinks (number_of_dirs)").

Two very important notes:
1. It needs 2-4MB per 10 thousand hardlink files. (It depends on path length)
2. The speed will drop, because all files are opended to obtain the number of links.

If /linkdest option is enabled, /recreate option is enabled tacitly.

File

Open LogOpen FastCopy.log
Open LastFileLog If it is checked Write to FileLog, open the last finished filelog.
FileLogHistory If it is checked Write to FileLog, open filelog history.
Open FastCopy DirOpen the user directory of FastCopy
Save as Init PosSave position as initial FastCopy window.
Save as Init SizeSave size as initial FastCopy window
Always &Top MostAlways display at the top most
CloseClose FastCopy

Help

HelpShow this help
Check Update Access https://fastcopy.jp/fastcopy-update.dat and check to require to update.
Support ForumQuestions/Opinions about FastCopy
Latest VersionOpen FastCopy WebPage
About FastCopyShow Version and Copyright

Elevate

Elevate administrative privilege. If it is, the title bar will show "(Admin)".

Other menu items

6. Settings

Settings → Main Settings

Main settings. (change Default values, I/O parameters, and Copy Options, etc.)

Defaults

Specify default parameters for Main Window
Default parameters for Main WindowThe detail is this.
LanguageChange Language. (need to restart)

I/O settings

fundamental parameter of I/O
Main Buffer (MB) Specify main buffer size for reading/writing.
I/O unit (MB)Parallel Read/Write request unit size for OS.
"I/O unit" * "OverLap I/O Num" is the (effective) Max I/O size for OS.
1MB I/O unit size is the best performance for many environments, especially if network drive is used.
(Buffer size must be at least twice the Max I/O Size)
OverLap I/O NumI/O performance(especially network drive) is improved by using overlapped ReadFile/WriteFile I/O.
(If it is specified "1", it will not be used overlapped I/O)
Always use Low IOGives I/O priority to other apps. (Use Low-Priority I/O in Vista and later)

OS Cache settings
Use OS buffer for readingIt does not use DirectI/O. OS is likely to be slow/heavy, it can not be recommended.
Use OS buffer for writingIt does not use DirectI/O, if the filesize is under the specified size(KB)
The disadvantages are the same as for reading. It will be faster for only very small files that use Direct I/O because of less head seeking time.

Directory Fetch
Enable Large fetch mode
(Win7 or later only)
Enable FIND_FIRST_EX_LARGE_FETCH flag and improve directory fetch performance.

Drive Group

Settings of physical drive group (*1)
FastCopy detects physical drive group automatically. However, in some situation(RAID,TrueCrypt or etc.), it can not detect automatically and it requires manual settings.
Manual settings of physical drive group
AboutSpecify same physical drive group.
FormatIf C: and D: are the same physical HDD, and E: and F: are the same, please specify "CD,EF"
If you use UNC path, you can assign the drive letter for UNC or specify set decision policy below.

Physical drive group decision policy of network drive
DetailsNetwork drives are in the same physical HDD(or SSD) or not
This decision policy always uses UNC name even if it is specified as the drive letter that is a network drive (*2)
Same UNC_share are same physical drive group.If UNC name is \\Server1\vol1\, \\Server1\vol1\ is the same physical HDD group, and \\Server1\vol2\ is not the same.
Same UNC_server are same physical drive groupIf UNC name is \\Server1\vol1\, \\Server1\ is the same physical HDD group, and \\Server2\... is not the same.
All UNC_server are same physical drive groupAll Network drives are the same HDD group
(*1) If Parallel Read/Write are issued in the same physical HDD, it will be slow because many HDD head seeks will occur. So FastCopy has two running modes as same or diff HDD mode.
(*2) If your network bandwidth is not enough, it is recommended to choose "All UNC_server are same"

Parallel running

Specifying the number of parallel running FastCopy.
Max number of running FastCopy procs If a lot of of instances of FastCopy are running in parallel, it requires much memory and CPU resource.
If another FastCopy already running uses the same physical HDD, FastCopy will wait for the previous FastCopy to finish.
Manual settings physical drive group is available.
Don't wait for another FastCopy running to finish(Ignore the above settings) It always starts quickly.

Copy Options

Copy options
Don't create empty directory, if "filter" is checked After using the filter, if there isn't a file for copying, FastCopy won't make directories.
Use a modified name, if destdir is the same as src's parent If DestDir is the same as src's parent directory, create a new name like "source(1)" and continue
Copy Junction/Symlink as Junction/Symlink(not target) Copy Junction/Symlink as Junction/Symlink.
If this check is off, it will be copy Junction/Symlink's target directory/file (*1)
(This option is ignored in "move" or "delete" mode)
Note: It requires administrator privilege to create Symlink
Shared open Dest on Copy/Move (a little dangerous) Opens the write destination non-exclusive. This increases the possibility that you can write to a file that is open by another process, but the file contents can be corrupted if another process writes to it.
Reproduce Hardlink

Reproduce hardlink as much as possible. (details)

Tolerance at the timestamp comparisonSpecify tolerance timestamp difference as same date in Diff(Date/Size) or Diff(Newer).
Normally, FastCopy corrects timestamp difference on the different filesystem(NTFS timestamp precision is 100ns, FAT is 2sec or etc.), automatically.
However, some NAS timestamp precision is very strange, so manual settings(in msec) are available.
DST mode
Always disallow DST grace time
Allow DST grace time(60min) with FAT
Always allow DT grace time(60min)
(*1)For example, "C:\Users\(user)\AppData\Local\Application Data" points to "C:\Users\(user)\AppData\Local". If you try to copy this with "Copy Junction/Symlink as Junction/Symlink" disabled, it will infinitely recurse. (C:\Users\(user)\AppData\Local\Application Data\Application Data\Application Data\...). Therefore, be careful when you disable "Copy Junction/Symlink as Junction/Symlink".

Move/Sync Options

Move/Sync options
Move options
Change "Move(Overwrite)" to "Move(Date/Size)" If there is a file with the same date and size as the move destination, it is deleted from the move source without copying.
Move one by one Normally it won't delete original files until the move files list is full.
This option changes the behavior to "a file has copied, and remove copied source file"
Move one by one (verify) It is the same as "Move one by one" except "remove copied source files" → "remove verified source files"

Sync options
Delete before copying The destination files that will be overwritten, or that don't exist in the source, are deleted before copying process begins.
(directory tree scan will be performed twice, once for deletion and once for copying, so if there are a lot of files, the copying process will be a little slower.

Verify Options

Verify options
Hash mode (for verify) Select Hash mode (xxHash/MD5/SHA-1/SHA-256/xxHash3) for verifying.
If a verify error occurs,
delete the file instead of renaming to .fc_verify_err
(Same as left)
Add VerifyInfoThe AltStream(:fc_verify) is added at completion of the verified copy.
(To detect silent data destruction)

 {done=complete date and time, ftime=file date and time, size=size, xxHash=Hash value}
In the case of a verification error, it will look like this
 {error=complete date and time, ... , xxHash(src=hash value, dst=hash value)}

This information is displayed in the main window when you press the Ctrl key, which is called "VerifyInfoList, which can be read by You can.
If not verifying, record the src hash value in the file log(same as left)

Delete options

Delete options.
Try to delete directory, even if "Filter" is checked. By default, it does not delete directory, if "Filter" is checked.
If it is checked, it always tries to delete directories. (attention)
Use NSA method for Wipe & Delete option If "Wipe & Delete" option is used, it is overwritten 3 times (random-data 2 times and zero-data 1 time), before renaming and deleting

Log Settings

Log Settings
Number of history items for Source/DestDirneed to restart FastCopy
Write to Error logLogging error message to FastCopy.log
Write to File LogCreating Log\(date).log and logging to all copied/deleted/error files.
FileDateLogging file timestamp
FileSizeLogging file size
Write ACL errors to Error LogSometimes, many errors will occur in non NTFS (Samba, or etc.)
Write AltStream errors to Error LogSometimes, many errors will occur in non NTFS (Samba, or etc.)

The meaning of the symbols in the log.
+Create file / directory
-Delete file / directory
->Create Symblic-link/Junction
=>Create Hardlink
!!Verify error (mismatch of hash value)

Shell Extension

Enable/Disable Shell Extension
If it is started by normally user, it will be a personal shell extension. If it is started by administrator privileges, it will be all users shell extension.

At minimizing

Use taskbar instead of task notification area at minimizing

Misc

Misc settings.
Update check at startupCheck latest version and automatic update
Confirm before executingConfirming
Use MB/s instead of MiB/s notationUse MB/s instead of MiB/s notation (MB/s will be 4.8% greater than MiB/s)
Info Update SpanInformation Update Span can be specified.
Balloon Notification at the finishEnable balloon notification at the finish, if it is minimized.
Prevent auto sleep during copyingPrevent auto sleep(by OS) during copying.
(Note: If an error dialog is shown, FastCopy doesn't prevent auto sleep)
English UI(It has no effect in English OS) English UI mode will be set. In order for English UI to take effect, you need to restart FastCopy

Post-Process

Select Post-Process.
Allows user to change default settings (sound, command, and standby/hibernate/shutdown) after copy process/execution is complete. Also, user can add new Post-Process settings. Grace ... The count-down time can be specified.
Don't execute, if error occurred. ... execute only if succeeded
Post-Process Window
ActionNameBy default, Normal/Standby/Hibernate/Shutdown are ready.
New actions can be created.
Play SoundPlay sound at finish
Only play, if error occurred option is available.
Shutdown/StandbyBefore executing to standby/hibernate/shutdown mode, FastCopy shows count down(60sec) dialog that has a "cancel" button.
If another FastCopy is running, FastCopy will wait for it to finish and start to count down.
Execute commandSpecify commands at finish.
Execute at Always/no error/error" can be specified.
If "Wait for Finish" is checked, FastCopy won't execute standby/hibernate/shutdown until finishing commands.
WebHook Notification
(Notify to Slack or etc.)
Run WebHook notification ... Run WebHook and send the completion notification (log) to Slack or etc.
Only run, if error occurred option is available.
Parameters for WebHook
(Common)
Set the parameters for the WebHook. (common to all Post-Process)
WebHook URL ... Describe the WebHook URL.
Post Data ... Describe the POST data. If you write $(body), it will be replaced with the actual log.
Test ... Test the execution of WebHook notifications.

Option → Font Settings → Change/Reset Main Font

Change/Reset Main information font in Main Window.
It is recommended to use fixed pitch font.

Option → Auto/Same/Diff HDD mode

Specify Auto/Same/Diff HDD mode(default: Auto).
CTL + K shortcut toggles between disk modes (auto → same → diff →...)

Settings → Show Extended Filter

Show Extended Filter(timestamp/size filter)

Option → Swap Source ⇔ DestDir

Swap Source for DestDir (for mutual update or etc.).
Source/DestDir will be modified based on different behavior whether the end of DestDir character is '\' or not. (For example, If Source is "C:\AAA\BBB" and DestDir is "D:\CCC\", then Source becomes "D:\CCC\BBB" and DestDir becomes "C:\AAA\")
If Source has two or more files/directories, this menu item is disabled.
CTL+ALT+S is shortcut of this function.

Job Manage → Add/Del Job

Register/Restore parameters in main window as named job.
Add/Modify Add/Modify parameters in main window(Source/DestDir, Operation mode, Buffer size, Nonstop/Verify/Estimate/ACL/AltStream/Wipe&Delete/Filter checkboxes, Filter strings, HDD mode) as named job.
Delete Delete registered job.
Open "Windows Task Scheduler" Open "Windows Task Scheduler".
(Only shortcut. FastCopy doesn't have any function for windows task scheduler)

7. Command Line

A basic format is as follows.

Normal ver: fastcopy.exe [/options] [file1 file2 ...] [/to=dest_dir]
CUI ver: fcp.exe [/options] file1 [file2 ...] /to=dest_dir
(Please use fcp.exe in situations where you used to start "" /wait fastcopy.exe)

The separate character is space(' ') in command line mode. (not semicolon).
If filename contains space character, please enclose with double quotation marks.
Ex) fastopy.exe C:\Windows "C:\Program Files" /to="D:\Backup Folder\"
If /to= option is used, it must be described as the last parameter.
If you want to wait to finish, please use fcp.exe or start "" /wait ... command.

Supported options are as follows. (Please do not put space characters before and behind "=")

/cmd=
  (noexist_only
  | diff
  | update
  | force_copy
  | sync
  | move
  | delete)
Specify operation mode. (By default, diff mode is used.
 If delete mode is specified, then "/to=desit_dir" is not used.)
cmdlinein GUI
noexist_onlyDiff (No Overwrite)
diffDiff (Size/date)
updateDiff (update)
force_copyCopy (Overwrite)
syncSync (Size/date)
moveMove (Overwrite)
deleteDelete
/auto_closeClose automatically after execution is finished with no errors.
/force_closeClose automatically and forcibly after execution is finished.
/open_windowIt will not be stored in the task notification area.
/estimateEstimate complete time.(to disable, /estimate=FALSE)
/balloon(=FALSE)Show balloon notification at finish. (to disable, /balloon=FALSE)
/no_uiDialog box will not be shown. This is for background tasks. If /no_ui is used, /no_confirm_del /no_confirm_stop /force_close are set automatically. If FastCopy runs in session 0 (e.g. running with task scheduler), /no_ui is set automatically. However even if /no_ui is set, standby/hibernate/shutdown countdown dialog will not be prevented.
/no_confirm_delDon't confirm before deleting.
/no_confirm_stopDon't show error dialog, even if critical errors occur.
/no_execDon't start to execute.
/error_stopShow error dialog (and operation is interrupted), if an error occurs. (to disable, /error_stop=FALSE)
/bufsize=N(MB)Specify the size(MB) of the main buffer for Read/Write operation.
/logWrite the operation/errors information to the logfile(FastCopy.log). (to disable, /log=FALSE)
/logfile=filenameSpecify the filename of logfile.
/filelogWrite to the filelog(detail of copy/delete files). It is stored TIMESTAMP.log in FastCopy/Log directory. If using verify mode, write digest data as additional data. (To specify filelogname, /filelog=filename)
/skip_empty_dirSkip to create empty directories when /include or /exclude option is used. (to disable, /skip_empty_dir=FALSE)
/job=job_nameSpecify the job that is already registered.
/force_start(=N)Start at once without waiting for the finish of other FastCopy executing. (/force_start=2-N ... specify number of max parallel process)
/disk_mode=(auto|same|diff)Specify Auto/Same/Diff HDD mode. (default: Auto)
/speed=(full|autoslow|
 9-1(90%-10%)|suspend)
Specify speed control level.
/low_ioPrioritize IO for other apps(to disable, /low_io=FALSE)
/srcfile="files.txt"Specify source files by textfile with UTF-8. User is able to describe 1 filename per line. (Attention:We don't recommend specifying a lot of files
/srcfile_w="files.txt"same as "/srcfile=", except describing with UTF-16.
/include="..."Specify Include filter. (details)
/exclude="..."Specify Exclude filter. (details)
/from_dateSpecify oldest timestamp filter. (details)
/to_dateSpecify newest timestamp filter. (details)
/min_size="..."Specify minimum size filter. (details)
/max_size="..."Specify maximum size filter. (details)
/time_allow=N(ms)Specify tolerance timestamp difference(ms) as same date in Diff(Date/Size) or Diff(Newer).
/wipe_delRename filename and wipe(overwrite Random data) before deleting.
/aclCopy ACL/EA (only NTFS)(to disable, /acl=FALSE)
/streamCopy Alternate Stream (only NTFS) (to disable, /stream=FALSE)
/reparseCopy junction/mountpoint/symlink itself(to disable, /reparse=FALSE) (details)
/verifyVerify written files data by xxHash3(MD5/SHA-1/SHA-256/xxHash) (to disable, /verify=FALSE) (details)
/verifyinfoEnable VeriyInfo to the AltStream (:fc_verify) option (to disable, /veriyinfo=FALSE)
/dlsvt=(none|auto|always)Specify Daylight Saving Time grace (details)
/linkdestReproduce hardlink as much as possible. (details)
/recreateChange updating behavior "overwrite the target" to "delete and recreate the target". (If /linkdest option is enabled, this option is enabled by default.) If you want always to enable, write [main] recreate=1 in FastCopy2.ini.
/postproc=action_nameSpecify post-process action name (to disable, /postproc=FALSE)
Ex) Copy C:\Test Folder to D:\Backup Folder by "diff(Size/Date)" mode is...
C:\> fastcopy.exe /cmd=diff C:\test /to="D:\Backup Folder\"
Exit status code) Command is succeeded: 0, or failed: -1

8. FcHash.exe

A command line tool for fast hash computation.

FcHash.exe [options] file1(or dir1) [,file2...]

OptionsContents
--(xxh|xxh3|md5|sha1|sha256|sha512)Hash kinds (Default: xxh3)
--recur(sive)Process directories recursively
--non_stopIgnore errors
--use_cacheUsing the OS cache

Example)
C:\> fchash --sha256 C:\
C:\ :
  sha256 <180a0d4144b44fc54acc9345a1453a32064ce8329ed387f4bf5faad1d7bc883a>: bootmgr
  sha256 <6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d>: BOOTNXT

9. Warning

In some modes, destination files that exist with the same filename in source directories, are overwritten forcibly without confirming.
In sync mode, destination files that do not exist with the same filename in source directories, are deleted forcibly without confirming.
In delete mode, target files and directories are deleted forcibly without confirming.

If FastCopy has bugs, there is a possibility of serious problems.
Please use at your own risk. (See
2. License)

10. Support Forum/Latest Version

Support Forum: https://github.com/FastCopyLab/FastCopy/issues
Latest Version: https://fastcopy.jp

11. Misc

The setting file(FastCopy2.ini) and log files are created in the following directory.
If FastCopy is installed to Program Files, these are created in C:\Users\(USER)\AppData\roaming\FastCopy\ (Menu File(F) → UserDir(U))
For other cases, these are created in the same directory as FastCopy.exe
Contact to the author.

If FastCopy terminated abnormally, fastcopy_exception.dmp and fastcopy_exception.log are generated.
(Please send this file to the author, I will use it for quality improvement)

12. History

VersionDetail
v4.2.0 Added to support AltStream for directories.
Improve Deletion Processing.
v4.1.8 Updated OpenSSL to v3.0.5.
Fixed a rare exception.
v4.1.1 - v4.1.6 Fixed the problem of incorrect console output strings in fcp.exe.
Fixed a bug in Win8.1 or earlier where timestamps were not retained when adding verification information.
Fixed a problem that caused slow startup in some environments.
Fixed a problem with foregrounding at the end of execution.
Fixed "If a verify error occurs, delete the file instead of renaming to .fc_verify_err" option was not working properly.
Fixed a rare exception on exit.
Fixed a rare resource leak problem.
v4.1.0 Support WebHook Notification. (Send the completion notification to Slack or etc)
v4.0.5 Fixed an issue where invalid input would cause an exception. (v3.0 or later)
Fixed an issue that caused exceptions during interruptions. (v3.0 or later)
v4.0.1 - v4.0.4 Fixed a problem where using the prediction option could cause a crash if the Source had a mix of different HDD and the same HDD mode.
Fixed a problem in which timestamps were not saved at Add VerifyInfo option.
Fixed an issue where the extended filter specification did not work.
Fixed an issue where '\' is added to the DestDir even if there is no '\' at the end of the DestDir in command line specification.
v4.0.0 Added FcHash.exe (xxHash3/SHA-based fast hash calculation command line)
Added fcp.exe (command line version of FastCopy)
. OpenSSL is incorporated, and CPU usage when SHA-256 is used is reduced to 1/3 (& faster).
Added option to record src hash value without verifying.
Added option to always use LowI/O.
Added SHA-512 mode to verify.
Added "Delete before copying" option in synchronous mode. (It will be a little slower if there are many files.)
Improved HDD I/O speed
Improved xxHash speed
Fixed a problem that when DestDir is NAS, the update date is set to current when Verify Information is enabled.
Fixed a problem where the value of XXH3 at size 0 was the value of the xxh3 beta version. (Incorrect: 0x07fd4e968e916ae11f17545bce1061f1, Correct: 0x99aa06d3014798d86001c324468d497f)
Fixed a rare problem that the filter does not work correctly when using multiple directories in Source and absolute path filter.
Other bug fixes.

v3.00
- v3.92
Added SHA-256, xxHash3(128bit) to Verify Type and changed default to xxh3 (automatically uses SSE2/AVX2/AVX512).
Added verify information option when copying with verify. (Add (hash value, copy date, etc.) to the secondary stream (:fc_verify))
Added File Log History to the File menu.
Added absolute path specification to Include/Exclude filter.
Multi-threaded deletion process. (more than double via network)
Multi-threading of Source open. (Especially effective on network drives)
Faster directory search (for high-latency environments or large entries, using FIND_FIRST_EX_LARGE_FETCH).
When ACLs are enabled, copying between local NTFS (or ReFS) with administrative privileges should copy SACLs as well as DACLs.
The completion status is also indicated by the color at the top of the icon (green: completion, red: error).
asynchronous I/O support, filter relative paths, optimized concurrency behavior.
Enabled user-level (non-administrator) shell extension.
Added OS cache settings for NetDrv.
Added /time_allow=N(ms) option.
Added test file creation mode setting (write speed test & dummy file creation using asynchronous I/O [without reading]).
v2.00 JobMng, Interpret Symlink, Simple compare, ACL/AltStrem, Speed Control
v1.001.00 release (2005/03/10)
v0.50First alpha release (2004/09/27)