FastCopy ver3.61

2018/11/08 H.Shirouzu (白水啓章) & FastCopy Lab, LLC.

Index

1. 概要
2. ライセンス
3. 動作環境
4. インストール・アンインストール
5. 使用法&画面説明
6. 設定
7. コマンドラインモード
8. 注意(危険なところ)
9. サポート掲示板&最新版
10. その他
11. 履歴

1. 概要

Windows系最速 のファイルコピー&バックアップツールです。

UNICODE でしか表現できないファイル名やMAX_PATH(260文字) を越えた位置のファイルもコピーできます。

自動的に、コピー元とコピー先が、同一のHDD(or SSD)に属するかを判定した後、以下の動作を行います。
別HDD間マルチスレッドで、読み込みと書き込みを並列に行う
同一HDD間コピー元から(バッファが一杯になるまで)連続 読み込み後、コピー先に連続して書き込む

Read/Write も、OS のキャッシュを全く使わないため、他のプロセス(アプリケーション)が重くなりにくくなっています。

可能な限り大きな単位で Read/Write するため、デバイスの限界に近いパフォーマンスが出ます。

Include/Exclude フィルタ(UNIXワイルドカード形式)が指定可能です。
(ver3.0以降、相対パス指定もできるようになりました)

MFC 等のフレームワークを使わず、Win32API だけで作っていますので、軽量&コンパクト&軽快に動作します。

全ソースコードは GPLv3 で公開していますので、VC++ 等をお持ちであれば、ご自由にカスタマイズしての利用も可能です。

ver3.0以降、設定ファイルは fastcopy.ini から fastcopy2.ini に変更になり、文字コードも UTF-8 になりました

2. ライセンス


xxHash Library Copyright (c) 2012-2014, Yann Collet All rights reserved.
ライセンス詳細はこちら

3. 動作環境

Windows Vista/7/8/8.1/10
Windows Server 2008(&R2)/2012(&R2)/2016

4. インストール・アンインストール

インストール

FastCopy3xx_installer.exe を実行して、任意のディレクトリにインストールしてください。
USB メモリ等に格納して使用する場合は、インストーラの「展開のみ」ボタンを押して、FastCopy.exe等を取り出してください。
/h オプションを付けると、/silent や /extract 等のオプションが表示されます。

アンインストール

Win7以降では設定/コントロールパネル等にある「プログラムと機能」から、アンインストール可能です。
インストール先の setup.exe を使ってアンインストールすることもできます。
/r /silent とすると、サイレントアンインストールになります。

5. 使用法&画面説明

ウィンドウの最小化で、タスク通知領域に格納します。
動作中は、各種ステータスが表示されます。
(ファイル数の括弧内はディレクトリ数を表します)

Source / DestDir

動作モード

モード動作内容
差分(上書きなし) 同じファイル名がある場合、コピーしません。
差分(サイズ・日付) 同じファイル名がある場合、サイズもしくは日付が違う場合のみ、コピーします。(デフォルト)
差分(最新日付) 同じファイル名がある場合、日付が新しい場合のみ、コピーします。
コピー(全上書き) 常に上書きコピーします。
同期(サイズ・日付) 同じファイル名がある場合、サイズもしくは日付が違う場合のみ、コピーします。 さらにコピー元に存在しない、コピー先ファイル(&ディレクトリ)をすべて強制削除します。
移動(全上書き) 上書きコピーした上で、コピー元を全削除します。
(一般設定→「コピー・移動設定」にて「移動(サイズ・日付)」に変更することができます)
全削除 指定されたファイル(&ディレクトリ)を全て強制削除(=読み取り専用属性がついたファイルも属性をクリアした後、削除)します。

ボタン&オプション指定

実行 コピー動作を実行します。実行中は、中断...ボタンに変化します。
CTLキーを押しながら実行を押すとソース一覧が表示された確認ダイアログが出てきます。
リストアップ コピー&削除される(予定の)ファイルを、リストアップして表示します。頭に '+' は作成・更新され、'-' は削除されます。
CTLキーを押しながらリストアップを押す(ボタン名「リストアップ」→「リストアップ+V」)と、スキップ対象(ただしフィルタ除外は除く)のファイルペアについて、読み込み&ハッシュ値比較を行います。
SHIFTキーを押しながらリストアップを押すと(ログ設定でファイルログを有効にしている場合)リストアップ内容がファイルログに記録されます。(ログ設定でファイル日付・サイズ記録オプションを設定している場合、それらも表示・記録されます)
Buffer 指定 Read/Write に使う、バッファサイズを表示します。クリックすると設定が表示されます
速度コントロール 最大(Full Speed)、自動速度制限(Auto Slow)(*1)、速度指定(90%〜10%)、停止(Suspend) を指定することができます。重いと感じる場合は「自動速度制限」を試すと良いでしょう(マウスや最前面ウィンドウの変化を検知すると、一定時間、遅くします)。また「最大」以外の場合は、プロセス優先度クラスを「低」に落とします。(ジョブ管理での保存項目対象にはなりません)
エラー時継続 Read/Write/Delete等で、エラーが発生しても、中断せず、可能な限り動作を続けます。
(ただし、エラー表示欄やエラーログには残ります)
ベリファイ xxHash (MD5/SHA-1/SHA-256) による書き込みデータのベリファイを行います。
(MD5/SHA-1/SHA-256 を利用する場合は、設定の
コピー・移動関連オプションから変更できます。 安全性としてはxxHash で十分ですが、ログに記録されるハッシュ値を別用途で利用したい場合にお使いください)

なお、具体的には、次のような比較を行います。
Read(Src) -> xxHash(Src) -> Write(Dst) -> Read(Dst) -> xxHash(Dst) -> xxHash比較(Src/Dst)
(各ステージが、複数のファイルを跨ったパイプラインのように並列して処理されます)

ベリファイエラーが発生した場合、コピー元・先のハッシュ値を表示した上で、コピー先のファイル名に.fc_verify_errを付与したものに変更します。
(設定で、削除動作にすることもできます)
完了時間予測 コピー開始前に、総ファイル数・総ファイルサイズを調べることで、完了時間を予測します。 (なお、削除モードでの予測はできません。また、移動モードの場合、削除時間は予測に含んでいません)
直ちに開始 他の FastCopy が実行中の場合に、その完了を待つことなく、直ちに実行を開始します。(なお、他の FastCopy がコピー・移動中でない場合、このボタンは現れません)(同時実行
(*1)FastCopy がアクティブでない状態でマウス移動を検出すると速度制限します。具体的には、I/O 動作の合間にウェイトを入れる、プロセス優先度を下げる、I/O優先度を下げる、最大I/Oサイズを1MBに低下させる、等により動作速度を制限します。なお、動作内容は、将来、変更される可能性があります

ACL属性 NTFS のアクセスコントロールリスト(ACL)をコピーします。
(ACLコピーは特権に昇格した状態で実行することを推奨します)
拡張属性(EA)も(存在すれば)コピーします。
副次Stream NTFS の副次ストリーム(Alternate Stream)をコピーします
復元無効化(上書き後に削除) 削除する前に、対象ファイルをリネームした後、ランダムデータで上書きすることで削除ファイルの復元を実質的に無効化します。なお、副次ストリームの上書きは行いません)なお、復元できない保証はありませんのでご注意

フィルタ指定

マッチするファイル/ディレクトリのみをコピーしたり、除外することができます。
(リストアップボタンで、事前に動作を確認しておくと便利です)

Include 指定文字列(UNIXワイルドカード形式可)にマッチするファイルやディレクトリ配下のみをコピー対象にします。(備考
複数指定する場合は、セミコロンで区切ります。ディレクトリを指定する場合は、文字列の末尾に '\' を付与します。
(例: *.txt; My Folder[0-9]\)
ver3.0 以降から、相対パス指定ができるようになりました。
Exclude Include の反対で、マッチするファイル・ディレクトリを除外します。
以下のフィルタは、設定→拡張フィルタ表示を有効にした場合のみ表示されます
FromDate 指定日時(書式)以降の更新タイムスタンプを持つファイルを対象とします。
書式は絶対日付指定("20150701" or "2016/09/26 12:30:59" 等)以外に、相対日付も可能です(10日前: '-10D')
ToDate 指定日時以前の更新タイムスタンプを持つファイルを対象とします。
MinSize 指定サイズ以上のファイルを対象とします。末尾に K/M/G/T を付与することで、サイズの略記表記可能です。
MaxSize 指定サイズ以下のファイルを対象とします。

備考1)削除モードで、Include に「ファイル指定あり&ディレクトリ指定なし」の場合にディレクトリ削除しません。
備考2)ファイルを1つ以上指定した場合、マッチしないファイルはコピーされません。
備考3)ディレクトリを1つ以上指定した場合、マッチしないディレクトリ配下以外はコピーされません。

相対パス指定 Include/Exclude の先頭文字が \ でない場合、相対パス指定となり、パスの末尾方向からの一致を検索します。
ディレクトリの Include指定の例
Source指定C:\dir\
Include指定subdir[1-9]\xxx\
マッチ例 C:\dir\subdir2\xxx\ や
C:\dir\aaa\subdir3\xxx\ など
効果マッチしたディレクトリとその配下全てがコピーされます。
ファイルの Include指定の例
Source指定C:\dir\
Include指定subdir[1-9]\file.*
マッチ例 C:\dir\aaa\subdir9\file.txt や
C:\dir\bbb\ccc\subdir9\file.doc など
効果マッチしたファイルがコピーされます。
前方一致指定 Include/Exclude の先頭文字が \ ではじまる場合、前方一致指定となり、パスの先頭方向(下記、フィルタ検査の開始点を参照)からの一致を検索します。
ディレクトリの Include指定の例
Source指定C:\dir\
Include指定\subdir[1-9]\xxx\
マッチ例 C:\dir\subdir2\xxx\ や
C:\dir\subdir3\xxx\ など。
効果マッチしたディレクトリとその配下全てがコピーされます。
備考(マッチしない例) C:\dir\aaa\subdir2\xxx\ など、階層が違うもの。
ファイルの Include指定の例
Source指定C:\dir\
Include指定\subdir[1-9]\file.*
マッチ例 C:\dir\subdir2\file.txt や
C:\dir\subdir9\file.doc など
効果マッチしたファイルがコピーされます。
備考(マッチしない例) C:\dir\aaa\subdir9\file.txt など、階層が違うもの。
フィルタ検査の開始位置 Source指定が
C:\src\;
C:\src\file.txt;
C:\src\dir*
のいずれかの場合、フィルタ検査の開始位置(先頭)は
C:\src\ の次の文字からになります。(C:\src\ まではフィルタ検査範囲に入りません)

Include / Exclude フィルタ指定で使用可能なワイルドカード書式
*0文字以上の任意の文字
?1文字の任意の文字
[abc]abc のどれか 1文字
[!abc]abc のどれか 1文字以外。'!' の代わりに '^' でも可
[a-z]a-z までの任意の1文字
\先頭の\は前方一致指定を意味します。パス途中の\はディレクトリ区切りを意味します。末尾の\はディレクトリ指定を表します。
[] の中で\はエスケープ文字になります。例えば "["や"]"をファイル名文字の一部として指定したい場合は、[\[] などとします

FromDate/ToDate フィルタ指定の書式
絶対日時指定日時を YYYYMMDD[hhmmss] もしくは YYYY/MM/DD [hh:mm:ss] で指定
相対日時指定-10D(10日前)などのように、"+|- 数字 W|D|h|m|s" の書式で指定します。
W|D|h|m|s はそれぞれ、週、日、時、分、秒を表します。
(大文字小文字を区別します)

ジャンクション・シンボリックリンク

v1.70から、ジャンクション(含むマウントポイント)・シンボリックリンクを認識するようになりました。
モード動作内容
差分・コピー デフォルトでは、ジャンクション・シンボリックリンク自体をコピーします。設定で指す先をコピーする挙動を変えることもできます(注意)。
移動 常に、ジャンクション・シンボリックリンク自体を移動します。
削除 常に、ジャンクション・シンボリックリンク自体を削除します。

ハードリンク

v1.95から、/linkdest を指定して起動したときのみ、ハードリンクを再現することが可能になりました。
(実行時の TotalFiles: 表示が、"ファイル数(ディレクトリ数)" から "ファイル数/ハードリンク数(ディレクトリ数)" に変化します)

注意点は以下の2つです。
1.ハードリンク実体1万ファイルあたり、2-4MB程度メモリを消費します(パス長に依存)。
2.差分コピー動作が遅くなります。(リンクカウンタ取得用にスキップ対象のファイルもオープンするため)。

/linkdest 指定した場合、/recreate オプション相当の動作が常に有効になります。
常時、ハードリンク再現を有効にしたい場合、fastcopy2.ini [main] linkdest=1 にします。

メニュー項目

6. 設定

設定 → 一般設定

FastCopy の一般設定(各種デフォルト値、I/Oパラメータ、ログ記録等)を行います。

デフォルト設定

起動画面のデフォルト値を指定します。
メイン画面のデフォルト値項目説明は こちらをご覧ください。
Language表示言語を変更します(再起動後に有効になります)

I/O設定

I/O用の基本パラメータ設定を行います。
メインバッファサイズ(MB)Read/Writeで使うメインバッファを指定します。
I/O単位(MB)1回にOSにリクエストするReadFile/WriteFileのサイズを指定します
「I/O単位 * 非同期I/O発行数」が、OS内で同時に実行される「最大I/Oサイズ」になります。
なお、手元での実験では I/O単位を2〜4MB以上に大きくするとネットワークドライブでの転送速度が少し低下するため、1MBを推奨値としています。
この値(と下記の非同期I/O発行数)を極端に大きくすると、カーネル内リソース不足で I/Oエラーになることがあります。
非同期I/O発行数ReadFile/WriteFile API発行毎に完了を待たず、並行してAPIを発行することで(特にネットワークドライブに対する)I/O速度を向上させています。
なお、この数を1にすると非同期I/Oを使いません
最小セクタ長を4KBと見なす書き込み側ルートディレクトリは512byteセクタでかつ、(ジャンクション等により)配下ディレクトリが4KBセクタに変化する場合に ON にします。
(ONにすると、1byteファイルにも常に4KBバッファを用意するため、小容量ファイルでのバッファ利用効率が若干下がります。なお、読み込み側ドライブ側セクタサイズ変化は自動追随するため、チェックは不要です)

OSキャッシュ設定
読込み側OSキャッシュ利用読み込み時にダイレクトI/Oを使いません
転送速度が遅くなったり、OSのファイルキャッシュによって、他のプログラムのメモリがスワップアウトされる可能性が増えるのでお薦めしません。
NTFS系/FAT系指定サイズ未満の書込み時にダイレクトI/Oを使いません
読込みOSキャッシュを利用と同じデメリットがありますが、ごく小さなファイルに限ってはヘッドシークの低減によって高速化につながるため、デフォルトではNTFS64KB未満、FATでは128KB未満では利用する設定になっています。

ディレクトリ読み取り
一括読み取りを有効にするFIND_FIRST_EX_LARGE_FETCHフラグを有効にして、ディレクトリエントリの読み取り速度を向上させます。

ドライブグループ

同じHDD(or SSD)に属するドライブを明示的にグループ化します。(*1)
FastCopy は通常、物理ドライブグループを自動判定しますが、RAIDやTrueCryptのように正確な判定が難しいドライブは手動で明示的に設定します。
物理ドライブグループの手動指定
概要どのドライブ同士が同じHDD(or SSD)かを手動で指定します。
指定方法C:とD:が同じHDDで、E:とF:が同じHDDであるとき、"CD,EF" と指定します。
なお、UNCパス名のドライブに関してはドライブレターを割り当てるか、下の判定ポリシー指定を行ってください

ネットワークドライブの物理ドライブグループ判定ポリシー
概要どのネットワークドライブ同士が同じHDD(or SSD)に属するかのポリシーを設定します。
ドライブレターを割り当てたネットワークドライブもマウントの際に使った UNC名で判定します。(*2)
同じUNC共有名=同一物理ドライブグループUNC名が \\Server1\vol1\ とした場合、\\Server1\vol1\ が一致するUNC名を同一HDDと見做し、\\Server1\vol2\ は別のHDDと見做します
同じUNCサーバ名=同一物理ドライブグループUNC名が \\Server1\vol1\ とした場合、\\Server1\ が一致するUNC名を同一HDDと見做し、\\Server2\... は別のHDDと見做します
全てのUNC共有名=同一物理ドライブグループすべてのネットワークドライブを同一HDDと見做します
(*1) パーティションを分けた同一HDDに対して、同時に Read と Write を発行するとヘッドシーク多発等により、かえって遅く&HDDの機械寿命にも悪影響を与えるため、同一HDDモードと別HDDモードを識別して、動作を変化させています
(*2) ネットワーク速度が十分でない場合は「全てのUNC共有名=同一物理ドライブグループ」を選び、ネットワークの輻輳を避ける方が安定した転送ができる場合があります

同時実行

FastCopy の同時実行数を設定します。
並列動作する場合、CPU、メモリを動作数分、必要とします。
物理メモリが十分確保できない場合、却って動作が遅くなる場合があります。
FastCopy の最大同時実行数複数起動した FastCopy について、並列動作を許容するプロセス数を設定します。
なお、他のFastCopyが同一HDDを処理中の場合は、同時実行最大数以下であっても当該FastCopyの終了を待ってから実行開始します。
同一HDD判定の手動設定は「ドライブグループ設定」から行えます。
他のFastCopyが動作中の場合も、直ちに実行開始する同時実行数設定や他のFastCopyの同一HDD利用を無視して、常に無条件に即実行します

コピー・移動関連オプション

コピー・移動関連オプションです。
フィルタ使用時、空ディレクトリは作成しない フィルタ適用の結果、コピーすべきファイルが無かったディレクトリは作成しません
コピー元と同一ディレクトリへのコピーはリネームして動作継続 コピー元と同一ディレクトリへのコピーの場合、ディレクトリ名の末尾に(1)などを付与してコピーします
Junction/Symlink は(実体/配下ではなく)それ自体をコピー ジャンクション・シンボリックリンクはそのままジャンクション・シンボリックリンク自体を複製します(デフォルト)。 チェックを外すと指し示す先のファイルやディレクトリ配下をコピーします。(注意 *1
(移動・削除動作では設定に関わらず常にONとなります)
なお、シンボリックリンクの作成には特権(管理者権限)が必要となります。
「移動(全上書き)」を「移動(日付・サイズ)」 に変更 移動先に日付・サイズが同じファイルがある場合、コピーすることなく移動元から削除します
移動を逐次方式に通常は移動予定リスト(数千〜数万ファイル)が一杯にならない限り、コピー元の削除を始めませんが、これをチェックするとファイルコピー終了毎に終わり次第(なるべく)即座にコピー元を削除します
移動(ベリファイ時)上と同じ動作ですが、ベリファイが終わり次第、となります
タイムスタンプ比較時の許容誤差差分(日付・サイズ)や差分(最新日付)で、src/dst の更新日付差の許容時間を指定します。
通常はファイルシステム種類に基づくタイムスタンプ精度(NTFS=100ns単位、FAT=2秒単位等)の差を自動補正して判定しますが、一部のNAS等で秒未満の更新日付が正確でない環境では手動で同一と見做す更新日付の許容範囲を設定してください。(msec単位)
ハッシュ方式(ベリファイ用)ベリファイ用ハッシュ方式(xxHash/MD5/SHA-1/SHA-256)を選択します
ベリファイエラー時、
.fc_verify_errにリネームせず、ファイルを削除
(左に同じ)
(*1)例えば "C:\Users\(user)\AppData\Local\Applicatoin Data" は "C:\Users\(user)\AppData\Local" を指しています。これを「実体/配下コピー」すると無限に再帰します。(C:\Users\(user)\AppData\Local\Applicatoin Data\Applicatoin Data\Applicatoin Data\…)。従い、実体/配下コピーを有効にする場合は注意が必要です。

削除関連オプション

削除関連オプションです。
フィルタ指定での削除時にもディレクトリ削除する デフォルトでは Include指定にファイルのみが指定されディレクトリ指定がない場合、ディレクトリを削除しません。
これをチェックすると、常にディレクトリも削除します。(注意
復元無効化にNSA方式を使う (3回上書きのためとても遅い) 復元無効化をON(=削除する前にランダムデータで1回上書き&ファイル名をリネーム後に削除)にした際、1回ではなく、3回上書きします(2回ランダムなデータで上書きした後、最後に 0 で1回上書き)。

ログ設定

ログ関連オプションです。
Source/DestDir の履歴数再起動後に有効です
エラーログを記録エラーログをfastcopy.logに記録します
ログはUTF-8を利用文字コードにUTF-8を使います。チェックを外すとSJISで記録します。
ファイルログを記録するコピー毎に、Log\日付.logファイルを作成し、コピーしたすべてのファイル名やエラーを記録します
ファイル日付ファイル更新日付も記録します
ファイルサイズファイルサイズも記録します
ACLエラーをログに記録する非NTFS環境(Samba等)や非特権状態では大量にエラーログが出ることがあります
副次Streamエラーをログに記録するSamba環境(Samba等)では大量にエラーログが出ることがあります

ログ内に出てくる記号の意味について。
+ファイル/ディレクトリの作成
-ファイル/ディレクトリの削除
->シンボリックリンク/ジャンクションの作成
=>ハードリンクの作成
!!ベリファイエラー(ハッシュ値の不一致)

シェル拡張

シェル拡張を行います。
通常起動すると個人用拡張となり、管理者権限で起動すると全ユーザ向け拡張になります。

最小化時の設定

最小化時に、タスクトレイを使うか、タスクバーを使うかを選択します。

その他

その他のオプションです。
起動時にアップデート確認引数なしで起動した時に、最新版が存在するか確認します(前回の確認から1日以上経過している時のみ)
実行前に確認ダイアログ実行前に確認します
表示更新間隔実行時の表示更新時間を指定します。アイコンの回転速度にも同期します
終了時にバルーン通知タスク通知領域格納時に終了をバルーン通知で知らせます
コピー中は、自動スリープを防止するOS設定で自動スリープが設定されていても、コピー中はスリープしません。
(ただしエラーダイアログ表示中は移行を防止しません)

設定 → フォント設定 → メインフォント変更&リセット

メインウィンドウ中央の情報枠のフォントを変更します。
各桁を揃えて表示したい場合は、固定ピッチフォントの利用をお勧めします。

設定 → 自動/同一/別HDDモード

自動/同一/別HDDモードを指定します(デフォルトは自動)。なお、CTL+K で各モードに、順次、切り替えすることもできます。

設定 → 終了時処理

終了時処理を選択します。標準、スタンバイ、休止、シャットダウンがデフォルトで用意されています。
「追加/変更/削除…」を選ぶと、サウンド設定やコマンド実行など新しい終了時処理を追加が可能な「終了時処理ウィンドウ」が表示されます。
終了時処理ウィンドウ
処理名標準、スタンバイ、休止、シャットダウンが標準で用意されています。
新たな名前の終了時処理を作ることも可能です
サウンド再生終了時に再生します。
「エラー発生時のみ実行する」も選べます
コマンド実行終了時に実行するコマンドを指定できます。 メール送信ソフトと組み合わせると有用かもしれません。
「実行条件」として、無条件/正常終了時/エラー終了時、のいずれかを選択できます。
「完了を待つ」をチェックするとコマンドが終了するまで、「シャットダウン/スタンバイ/ハイバネーション」処理に移行しません。
スタンバイ/シャットダウン処理の概要
シャットダウン/スタンバイ/ハイバネーション処理は、動作前に60秒のカウントダウン表示があり、途中キャンセルも可能です。
また、他の FastCopy が処理中の場合、その完了を待ってから60秒のカウントダウンが始まります。
猶予実行までのカウントダウン秒数を変更できます(標準60秒)
エラー発生時には実行しない正常終了時のみ実行します

設定 → 拡張フィルタ表示

拡張フィルタ(タイムスタンプ/サイズフィルタ)を表示します。

設定 → Source ⇔ DestDir の交換

相互に同期したい場合などのために、Source と DestDir の内容を交換します。その際、末尾の '\' の有無による挙動の違いなどを踏まえて、パス内容を必要に応じて加工します。(例えば、Source: C:\AAA\BBB、DestDir: D:\CCC\ の場合、Source: D:\CCC\BBB、DestDir: C:\AAA\ となります)
なお、Source が複数指定されている場合は、利用できません。
CTL+ALT+S でも実行可能です。

ジョブ管理 → ジョブ登録・削除

メインウィンドウの記述内容を、ジョブという単位で、保存&呼び出しできるようにします。
追加・更新 メインウィンドウ内容(Source/DestDir, コマンドモード, フィルタ指定、バッファ指定、エラー時継続オプション、完了時間予測、自動/同一/別HDDモード)にジョブ名を付けて保存・更新します。
削除 選択したジョブを削除します。
Windowsタスクスケジューラを起動する Windowsタスクスケジューラを起動します。
(単なるショートカットであり、タスクスケジューラ登録のアシスト/連携機能は FastCopy側にはありません)

7. コマンドラインモード

基本的な書式は、以下の通りです。

 fastcopy.exe [/オプション類] file1 file2 ... [/to=dest_dir]

GUI モードと違い、区切り文字は空白文字になります。
空白文字を含むパス名は、"" で括って指定してください
/to= は必ず末尾で指定します
実行終了まで待ちたい場合は、start "" /wait fastcopy.exe [/オプション類] ... とします

指定可能なオプションは、以下の通りです。(なお、'=' の前後には空白を入れないで下さい)

/cmd=
  (noexist_only
  | diff
  | update
  | force_copy
  | sync
  | move
  | delete)
動作モード指定。(cmd 指定省略時は diff モード。delete 指定時は、/to=dest_dir は使いません)
cmdlineGUIでの表記
noexist_only差分(上書きなし)
diff差分(サイズ・日付)
update差分(最新日付)
force_copyコピー(全上書き)
sync同期(サイズ・日付)
move移動(全上書き)
delete全削除
/auto_closeコピー終了後、自動的に終了します
/force_closeコピー終了後、エラーが発生していた場合も、強制的に終了します
/open_windowタスク通知領域に格納しません(直ちに実行開始しない場合は指定不要)
/estimateコピー完了時間予測を行います(/estimate=FALSE で抑止)
/balloon(=FALSE)完了時にバルーン表示を行います(/balloon=FALSE で抑止)
/no_ui原則として問い合わせダイアログを出しません。(バックグラウンド動作用。内部的に /no_confirm_del と /no_confirm_stop と /force_close もセットされます。セッション0分離(主にタスクスケジューラ起動)では自動的に/no_uiがセットされます。ただし終了時アクションでのカウントダウンは実スクリーンの有無に関わらず行われます)
/no_confirm_del/delete 時に、動作開始の問い合わせをしません
/no_confirm_stop継続不能エラー発生時にも、エラーを出しません
/no_execパラメータをメインウィンドウにセットしますが、実行はしません
/error_stopエラー発生時にダイアログを出し、続行するかを問い合わせます(/error_stop=FALSE で抑止)
/bufsize=N(MB)バッファサイズを MB 単位で指定します
/logログファイル(fastcopy.log) にログを出力します(/log=FALSE で抑止)
/logfile=ログファイル名ログファイル名を指定します
/filelog詳細ファイルログを記録します。FastCopy/Log ディレクトリ配下に、日付.log という形式で保存されます。ベリファイ時はハッシュ値も記録されます。(/filelog=filename で指定ファイルに保存可能。ただし、同じファイルを指定して、同時に複数の FastCopy を実行した場合、ログ出力が交互に混じる可能性があります)
/utf8UTF-8でログを記録します
/skip_empty_dirフィルタ指定時、空ディレクトリをコピーしません(/skip_empty_dir=FALSE で抑止)
/job=ジョブ名事前に登録してあるジョブを指定します
/force_start(=N)他の FastCopy がコピー実行中の場合も直ちに実行します。
(/force_start=2〜N で同時実行上限数指定)
/disk_mode=
  (auto|same|diff)
自動/同一/別HDDモードを指定します。(デフォルト: auto)
/speed=(full|autoslow|
  9-1(90%-10%)|suspend)
速度コントロールを行います
/srcfile="files.txtSource内容をファイルで指定します。1行に1ファイルを記述します。(なお、大量ファイルの指定はお勧めしません)
/srcfile_w="files.txt"/srcfile= と同様ですが、UNICODE で記述します
/include="..."Include フィルタを指定します(詳細
/exclude="..."Exclude フィルタを指定します(詳細
/from_date="..."更新日付フィルタ(最古)を指定します(詳細
/to_date="..."更新日付フィルタ(最新)を指定します(詳細
/min_size="..."サイズフィルタ(最小)を指定します(詳細
/max_size="..."サイズフィルタ(最大)を指定します(詳細
/wipe_del削除モード時に、ファイルを削除する前に上書き&リネームして、復元を無効にします(/wipe_del=FALSE で抑止)
/aclアクセスコントロールリスト(ACL)、拡張属性(EA)をコピーします(NTFSのみ有効)(/acl=FALSE で抑止)
/stream副次ストリームをコピーします(NTFSのみ有効)(/stream=FALSE で抑止)
/reparseジャンクション・マウントポイント・シンボリックリンクを(配下ではなく)それ自体をコピーします(/reparse=FALSE で配下をコピー)(詳細 および 注意
/verifyxxHash(or MD5, SHA-1, SHA-256) による書き込みデータのベリファイを行います(/verify=FALSE で抑止)
/linkdestハードリンクを可能な限り再現します。詳細は こちらを参照 ください。
/recreateファイル更新の挙動を、既存ファイルの上書きから、既存ファイル削除&再生成に変更します。(/linkdest 指定時には、/recreate指定の有無に関わらず、この動作を行います)常時、この動作を有効にしたい場合、fastcopy2.ini [main] recreate=1 にします。
/postproc=終了時処理名事前に登録してある終了時処理名を指定します。(/postproc=FALSE で抑止)

例) C:\test 配下を D:\Backup Folder に差分コピーする場合
 fastcopy.exe /cmd=diff C:\test /to="D:\Backup Folder\"

終了ステータスについて) コマンドが成功した場合は 0、失敗した場合は -1 を返します。

8. 注意(危険なところ)

9. サポート掲示板&最新版

10. その他(設定保存先等)

  • 設定ファイル(FastCopy2.ini)およびログファイルは下記に作られます。
    Program Files 配下にインストールした場合、\Users\(USER)\AppData\roaming\FastCopy\(メニューのファイル(F) → UserDir(U))。
    それ以外の場合、FastCopy.exe の存在するディレクトリ。
  • 他のアプリケーション等への組み込みについて
    高速コピーのコア部分(fastcopy.cpp/h)は、GUI 部分から独立させて作ってあります。
    GPLv3 ライセンスに基づいて、ご自由にお使いください。
  • 万一、異常終了(例外)した場合、fastcopy_exception.log が生成されます。 (作者に送ると、品質向上のための手がかりになります)
  • 11. 履歴

    Version説明
    v3.61 ACL/副次Streamを有効にした場合に、それらが正しくコピーされない&例外発生する問題の修正。(v3.60のみ)
    v3.60 Sourceオープンのマルチスレッド化。(ネットワークドライブで特に効果)
    OneDrive用WevDAVでタイムスタンプが反映するように。
    NTFS以外でのハードリンク試行によるエラーを抑止。
    v3.53-v3.54 速度コントロール指定をより正確に。
    同一HDDモードの性能をわずかに改善。
    シェル拡張が有効にならない問題の修正。(v3.53のみ)
    v3.52 ハッシュのデフォルトをxxHashに変更。
    xxHashベリファイ計算を3〜4倍高速化(1〜2GB/s以上の環境でベリファイ処理ネックが解消)。
    インストーラに /SILENT オプション等を追加(/hで確認)。
    v3.51 ベリファイエラー時に、.fc_verify_err へのリネームではなく、削除するオプションを追加。
    include/excludeフィルターで、ディレクトリ指定とファイル指定を同じ名前を指定すると、最後の指定のみが有効になる問題を修正。
    その他リファイン。
    v3.50 Source選択ダイアログで、ファイルとフォルダを同時に選択できるように。
    I/Oサイズ&重畳数を適応的に変化させることで、ネットワークドライブのパフォーマンスを向上。
    (レイテンシ大の環境では、Explorerや従来版に比べて2倍以上高速に)
    最小化時、タスク通知領域にアイコンが隠れる場合はタスクバーに表示するように。
    エラー時の終了コードが0(正しくは-1)になっていた問題の修正。
    設定類の改良(最小化時の動作の追加、シェル拡張の移動等)
    インストーラ方式に変更し、インストーラに「ファイル展開(のみ)」を追加。
    例外時にダンプも出力するように。
    「アプリと機能」からも、アンインストールできるように。
    完了状態をアイコン上部の色でも表現(緑:完了、赤:エラー)。
    公式ホームページを https://fastcopy.jp に変更。
    v3.41 I/O関連パラメータと設定方法を変更し、特にネットワークドライブでのパフォーマンスを向上。
    起動時の自動アップデートチェックの追加(設定→その他、から変更可能)。
    削除モードで、コピーモード用オプションが表示されることがあったのを修正。
    削除時の「ディレクトリが空でない」エラーが稀に発生していたのを低減(OS側の問題への暫定対処)。
    2つ以上の物理HDDを使ったボリュームの、同一/別ドライブ判定が不正確だったのを修正。
    その他リファイン。
    v3.40 アップデート機能(メニュー → ヘルプ → アップデート確認)の追加。
    Source入力欄を複数行表示可能にし(セミコロンではなく)改行で複数ファイルを表現する形に。
    予測時間の精度を向上(Sourceに加えて、Destも事前探索する形に)。
    Sourceボタンの初期動作をファイル選択画面に変更(設定→その他、から変更可能)。
    LargeFetch機能の無効化を選択可能に(設定→I/O設定)。
    v3.32 非日本語環境で、Aboutダイアログを開くと例外が発生していたのを修正。
    /srcfile_w= で指定したファイルのBOMを正しく認識できていなかったのを修正。
    v3.31 メインバッファ初期サイズを拡大(x64:128MB→256MB、x86:64MB→128MB)。
    最大属性バッファを拡大(x64:1GB→8GB)。
    ベリファイ&移動用パスバッファを拡大(x64:8MB→128MB)&ini設定可能に(max_movesize/max_digestsize)
    日付判定での許容誤差指定(ms単位)を64bit化(最大23日 → 事実上無制限)
    ネットワークファイルでも、巨大ファイルはNOBUFFERING扱いに。
    /srcfile=, /srcfile_w= でBOMを許容するように。
    転送バッファ分割の改善。
    インストーラにおける、DLLプリロード攻撃対策。
    v3.30 ベリファイモード選択にxxHashを追加。
    テスト用ファイル作成モード設定を追加([読み込みなしでの]非同期I/Oを使った書き込み速度テスト&ダミーファイル作成)。
    前方一致フィルタで、深さの違うフィルタ指定を複数行うと最も深い指定のみ利用される問題を修正。
    ネットワークドライブの同一判定を間違えることがあったのを修正。
    ジョブ登録では、バッファ設定を個別保存しないポリシーに変更。
    その他リファイン

    過去のバージョンのサマリ(詳細な情報は
    こちら
    Version説明
    v3.00
    - v3.27
    非同期I/Oサポート、フィルタ相対パス同時実行動作の最適化GPLv3 に変更
    ユーザレベル(非管理者)でのシェル拡張を可能に。
    ディレクトリ探索の高速化(高レイテンシ環境or大規模エントリ用。FIND_FIRST_EX_LARGE_FETCH利用)。
    ベリファイモード選択にSHA-256を追加。
    テスト用ファイル作成モード設定を追加([読み込みなしでの]非同期I/Oを使った書き込み速度テスト&ダミーファイル作成)。
    v2.00ジョブ管理Symlink対応簡易比較ACL/AltStremサポート速度コントロール追加等
    v1.00移動モード、シェル拡張追加、英語OS対応等
    v0.50α版ファーストリリース。 (2004/09/27)