FastCopy Lite ダウンロード





FastCopy Lite は
FastCopyを改造した派生版です。
区別するためにタイトルに「Lite」を付与しています。
FastCopyのソースは修正BSD(二条項BSD)ライセンスで公開されているため、
実現したいことを実装しました。
素晴らしいソフトウェアを公開されているH.Shirouzu氏に敬意を表します。



19/04/06
1.8.3版

@以下の条件を全て満たした場合、
 高確率で処理が順列では無く並列で行われる問題を修正

1.高負荷環境
2.非同期で複数のFastCopy Liteを実行(startコマンド等を使用)
3.インテリジェントジョブのオプションに「シーケンスモード」を指定する、


再現状況例:

高負荷環境で以下をバッチファイルで実行する

バッチファイルの意味:

ボリュームラベル「data1」からボリュームラベル「data1_backup」へ同期を行い、
ボリュームラベル「data2」からボリュームラベル「data2_backup」へ同期を行う
(ボリュームラベル指定はFastCopy Lite ver 1.3から実装された固有の機能。
なお、指定はドライブレターやパスでも構わない)

ただし、異なるドライブ名でも同じHDDであるため、並列では無く順列で行う

他は異なるドライブのため並列で同期を行う

全ての処理が完了したら、最後に指定されたタスクで後処理を行い、自動終了する


start /b "" "cmd /c ""FastCopy.exe" /intelligentJob_mode=sequence /cmd=sync /estimate /auto_close /force_close /speed=full /postproc=finalize_task #data1#\ /to=#data1_backup#\""
start /b "" "cmd /c ""FastCopy.exe" /intelligentJob_mode=sequence /cmd=sync /estimate /auto_close /force_close /speed=full #data2#\ /to=#data2_backup#\""
start /b "" "cmd /c ""FastCopy.exe" /cmd=sync /estimate /auto_close /force_close /speed=full D:\ /to=\\External_server\d\""


Aインテリジェントジョブを有効化する条件にNo Auto Rebootを追加

インテリジェントジョブは以下の拙作シェアウェアのいずれかを
使用している場合のみ利用可能になるが、No Auto Rebootも対象に加えた

マウ筋 Lite (ver2含む)
Invisible mouse cursor
Layout Window
TrayExpand Lite
TaskSwitchXP Lite


18/05/20
1.8.2版
・処理の途中で何らかのエラーが発生しても、強制的に自動終了する
 「エラー発生時でも終了する」オプションを追加

CLIのパラメータ「/force_close」のGUI版である。
処理終了後、エラーが発生していた場合でも強制的に終了する。

メイン画面の「自動終了」を有効にしても
処理の途中で何らかのエラーが発生した場合は
エラー内容の確認ができるように終了しないようにしていたが、
エラーの発生有無に関わらず、常に自動的に終了する
「エラー発生時でも終了する」オプションを「自動終了」と同じ設定画面に追加した。



「エラー発生時でも終了する」オプションが無効の場合は、
従来どおり、エラー発生時は自動終了しない



16/09/18
1.8.1版
・表示フォントを変更する機能を無効化
一部の機能が使用不可になる問題が確認されたため、無効化した

・"終了時処理"に終了した旨のポップアップメッセージ時を表示する機能を追加

・"終了時処理"に何らかのコマンドを指定していても、"自動終了"が有効時には高確率で機能しない問題を修正

16/09/10
1.8.0版
・情報画面に経過時間を表示するようにした



完了予測時間は完了の目安にはなるが、
実際に要した時間を把握する必要があるため
下部に"Elapse"を表示。

画面例:
---------------------------------
-- Remain 00:07:51 (13%) --
TotalRead = 6856.0 MB
TotalWrite = 6856.0 MB
TotalFiles = 0 (0)
TotalTime= 80.14 sec
TransRate= 85.55 MB/s
FileRate = 0.00 files/s

-- Elapse 00:01:20 --
---------------------------------

・コピー元・先がIPアドレス形式のネットワークパスの場合、
最大同時処理数の上限を超えて処理が開始されるケースがある問題を修正

・使用言語が日本語の場合、Sequence、Auto Close表記をを和名に変更

・表示フォントを変更する機能を追加した



以下にフォント変更用メニューを追加し、フォント種別とサイズを変更可能にした。

メニュー → 設定 → 表示フォントの変更

画面に多くの情報が載るケースでは
ある程度大きく表示された方が見やすいため、表示フォントを変更可能にした。
(指定フォント種別、サイズによっては画面の一部が見切れることは仕様)

変更後の画面:

15/07/26
1.7.9版
・同時処理上限数をコマンドラインで一時的に変更可能にした

コマンドラインパラメータに"intelligentJob_task_limit"を指定した場合、
同時処理上限数を一時的に変更可能にした
指定可能な範囲は1-9である。

一時的な変更であるため、設定に保存されない。

指定例:
本例では「/intelligentJob_task_limit=9」を指定しているため、
同時処理上限数が9になる。

start /b "" "cmd /c ""FastCopy.exe" /cmd=sync /intelligentJob_task_limit=9 \
/estimate /auto_close /speed=full /postproc=unmount #data1#\ /to=#data_backup1#\""

start /b "" "cmd /c ""FastCopy.exe" /cmd=sync /estimate /auto_close \
/speed=full /postproc=unmount #data2#\ /to=#data_backup2#\""




同時処理上限数をコマンドラインで一時的に変更する意義とは:

インテリジェントジョブは可能な限り並列で処理するのですが、
あまり同時に処理するプロセス数が多くなると逆に遅くなったり
ネットワーク経由の処理の場合はネットワークリソースが不足して
エラーが発生することがあります。

そのため1.7.4版から導入した"同時処理上限数"で制限をしていますが、
余力がある環境ならば数を増やした方が処理が早くなるため、
処理対象別に柔軟に処理数を変更できるようにしました。
(逆に余力が無い場合は少なくすることで効率が良くなります)

処理先毎に一々設定画面で変更せずに済むため、使い勝手が更に良くなりました。


追記:
Windows10を迎えるにあたり、高解像度、マルチディスプレイ環境の必要性が増してくるため
Per-Monitor DPI対応にしています。

履歴に書き忘れたので、次版以降に記載します。

15/06/18
1.7.8版

・x64版を追加



ファイル名は"FastCopy_x64.exe"。
x64版で起動している場合、バージョン情報に"(x64)"が表示される。


・起動される環境により、自動的にネイティブ版が使用されるようにした

コンテキストメニューを表示したアプリケーションがx64版の場合は
x64版のFastcopy Liteが起動し、
x86版の場合はx86版のFastcopy Liteが起動される。

例えばOSがx64版の場合エクスプローラはx64版であるため、
エクスプローラのコンテキストメニューから起動すると
x64版のFastcopy Liteが起動される。
OSがx64版であってもx86版のファイラーアプリケーションの
コンテキストメニューから起動するとx86版のFastcopy Liteが起動される。
OSがx86版の場合は常にx86版のFastcopy Liteが起動される。

・マウ筋Lite x64版が起動していてもIntelligent Jobが有効化されない問題を修正

15/03/25
1.7.7版
・高解像度環境に対応。
 画面がにじんで表示される問題を修正

15/03/25
1.7.6版
・コピー処理が競合していても並列処理が誤って動作する問題を修正
・順列処理で他に競合するプロセスが存在しない場合は処理を開始するようにした

並列処理と順列処理のバグ修正を行いました。

順列処理については、例えば以下の順番でプロセスを実行すると
@とAが終わるまでBは待機していましたが、
 「  @順列モード->A並列モード->B順列モード用のプロセス 」

@終了時にAが存在していた場合、Aと処理が競合しない条件下では
Bの処理が開始されるようにしました。
15/03/24

ダウンロード先を以下から
https://sites.google.com/site/hidenohidamarina/home/cang-ku
こちらへ変更しました。
http://sourceforge.jp/users/hide_and_seek/pf/FastCopyLite_alpha/files/?action=simple_list

Lite版は「FastCopyLite_setup_X.X.X.exe」の方です。
こちらはオープンソースではありませんが、
α版との比較用に同じ場所で管理するようにしました。
15/02/21
1.7.5版

・「全削除」処理もIntelligent Jobで管理するようにした

従来は他のプロセスが処理中でも、「全削除」実行時のみ直ちに実行されたが
「差分、コピー(全上書き)、同期、移動」処理と同様にIntelligent Jobで管理し、
自動並列、順列処理を行えるようにした。
本件の対処により削除処理も矛盾無く、かつ最速で処理されるようになった。

実行例: 
「Sequence」(順列)が無効なので、並列で処理されるが、
他のプロセスと処理が競合するため「全削除」処理を行うプロセスが待機する。



15/02/08
1.7.4版

・同時に処理するプロセスの上限数を指定可能にした
Intelligent Jobは自動で並列処理を行うが、
同時に処理するプロセス数が多くなると
ネットワークリソースの不足によるエラーが発生し、処理が継続できないことがある。

1台のPCに対して3プロセスが同時に処理し続けると
一定時間経過後に上記が発生し易いことから、デフォルトの上限数を2とした。
この値は「設定→一般設定のIntelligentJobグループ→同時処理上限数」で
変更可能である。




具体的な使用例:
従来は以下の事例を番号順に実行するとプロセス@、B、Cが並列で実行され、
Aは@が終了するまで待機します。
これは可能な限り並列で処理する仕様であるためです。

 トレイアイコンの状態
 

(この"可能な限り"というのが重要です。
Windows8も標準で並列に行えますが、
そちらは何も考えずに全て並列処理を行う仕様です。)

事例:
シーケンスモード プロセス@、A


パラレルモード プロセスB、C


しかし、処理対象となるドライブがネットワークドライブであり、
かつ全て1台のPCに集約されている場合は1台に対して3プロセス分の処理が
同時に行われることになります。
一定時間は問題ないのですが、長時間処理し続けると
ネットワークリソースが枯渇して処理が継続できなくなります。
コピー先のPCを再起動すると元に戻ることから
fastcopyLiteの問題というよりはOSの仕様的な問題ではないかと思われます。

さて、並列処理が行えても
コピー先のPCが負荷に耐えられなくなるということでは
Intelligent Jobの性能を十分に発揮することができません。
そのため、ネットワーク負荷も考慮し、同時処理の上限数を指定可能にしました。

「同時処理上限数」を2にして、他は同じ条件で実施すると、
今度はプロセス@、Bが並列で実行され、
Cは@かBが終了するまで待機し、Aは@が終了するまで待機するようになります。
(同時処理の上限が2であるため、Cの@はどちらかが先に処理を開始した場合、
残りは待機状態のままになります)

この機能によりシステム構成、コピー処理条件に応じて
処理方法を極めて柔軟に指定することが可能になりました。


あとがき

気軽なマイツールを目指していたのですが、
いつの間にか自分が思い描く理想の姿になりつつあります。
ここまで出来たら面白いだろう、
こんな機能を誰も実現してくれないだろうけど、でもあったら良いなあと
描いていた夢物語が現実に。

「Intelligent Job」は一般用途としては
オーバースペックであり、
正直、必要とする方は相当のパワーユーザ
であると思っています。

扱うデータ量が甚大、ドライブ構成
(ネットワークドライブ含む)が複雑、
でも短時間で処理したいという要望は
規模の大きなシステム管理者か
映像を扱う専門の方ぐらいでしょう。

私の作品は概ね何らかの専門家、
もしくはパワーユーザ向けだと
考えているため
現状、Intelligent Jobは作品を
気に入って頂けたユーザ向けの感謝
という位置づけです。

そのためIntelligent Jobが無効状態で使用できなくても
Lite版の恩恵は十分に受けられます。

同容量ドライブ間で容量不足によるエラーが発生することなく
処理可能な改良版同期機能、
処理終了後に自動的にウィンドウを閉じる、
ボリュームラベルで対象ドライブを自動判定する、
コンテキストメニューに同期などの機能を追加する、
全て一括終了する
(処理中のウィンドウでShiftキーを押すと「中断」ボタンが「全て終了」に変化)、
終了時の位置を記憶する(もし画面の外に出ている場合は自動的に画面内に移動)、
進捗を画面の進捗バー、もしくはトレイアイコンの進捗バーで把握可能、
といった追加した便利機能は利用可能ですし、
終了時のジョブ処理や手動による並列処理といった既存機能は健在です。

もし、上記の便利な機能だけでなく、処理速度の向上を望まれるならば
ぜひ「Intelligent Job」をお試し下さい。
「Intelligent Job」は当方のシェアウェアを試用中でも機能を使用できます。


15/01/20
1.7.3版
・OS起動直後に非同期で複数のプロセスにてコピー処理を行うと、
全てシーケンシャル(順列)モードが指定されているにもかかわらず
同時に処理が開始されてしまう問題を修正

15/01/18
1.7.2版
・プロセスが異常終了すると他のプロセスに影響を与えて意図しない動作になる問題を修正

14/12/29
1.7.1版
・コマンドライン指定で実行された場合、パラメータ構成によって
順列処理の実行順序が保証されないケースがある問題を修正

14/12/28
1.7版
・Intelligent Jobで順列(Seauence)処理を使用可能にした

Intelligent Jobはコピー等の処理を自動で並列に処理を行いますが、
それに加えて開始順に実施する順列(Seaquence)オプションを指定可能にしました。

一時的な指定はメイン画面の「Sequence」を有効化、
次回起動時も有効にする場合は
メニューの一般設定→デフォルトの「Sequence」を有効化します。





「Sequence」が無効の場合はデフォルトの「並列」が使用されます。

 デフォルト: パラレルモード(並列)
 オプション: シーケンスモード(順列)

また、コマンドラインもサポートしました。

パラレルモード /intelligentJob_mode=parallel
(指定が無い場合は本モードがデフォルトとして使用される)
シーケンスモード /intelligentJob_mode=sequence
例: 
"FastCopy.exe" /intelligentJob_mode=sequence /cmd=sync /estimate
/auto_close /speed=full /postproc=unmount #data_master#\
/to=#data_backup#\

「Sequence」もIntelligent Job(IJ)の機能であるため、
IJが無効である場合は関連項目とコマンド引数も無効化されます。
(IJの有効方法は1.4版の履歴を参照)


IJのモードは混在して使用することも可能です。
常に一定の順番で行う処理はシーケンス、
処理の矛盾無く可能な限り平行して行える処理はパラレルモード、と
組み合わせて使用できます。

例えば、次のような条件で処理を@、B、A、Cの順番に実行した場合、
Aのみが待機し、他は処理を開始します。

 トレイアイコンの状態
 

待機中のAは先に実行された全プロセス(この場合は@とB)が
終了(もしくは中断)した契機で処理が開始されます。

シーケンスモード プロセス@、A


パラレルモード プロセスB、C


なお、1.6版で実装した"最後のプロセスのみ終了時処理のアクションを行う"機能は
上記のようなケースでも有効です。(単体でも混在でも可)


IJは処理を最適の条件で行い、最短で完了させることを目的としているため
当初は自動並列処理が全てと考えていました。
しかしドライブには物理以外に論理という概念があり、
論理的に異なっていても特定の物理ドライブに集約されている場合は
並列に行うとI/Oの負荷が増大しかえって遅くなることがあります。

どの論理ドライブがどこの物理と関連があるか判別することが可能ならば良いのですが
論理には"仮想"という概念も存在するため、完全に判定することはほぼ不可能です。
よってI/Oの一極集中を防ぐためにシーケンスモードを導入しました。

通常の用途であれば、このように大掛かりな仕様の出番は無いでしょうが
「なるほど、素晴らしい!」という発想が真っ先に思い浮かぶようであれば
きっと福音となることでしょう。

14/12/08
1.6版

・終了時処理のアクションは最後のプロセス(≒ Fastcopy Liteの1ウィンドウ)
のみ実行するようにした(IJ限定)

これはIntelligent Job(以後、IJ)専用機能である。
(IJの有効方法は1.4版の履歴を参照)

IJはプロセス間の処理を自動で並列に実施するため
通常、シーケンシャル処理より高速である。

しかし、どのプロセスが最後に実施されるのかは不定であるため
全ての処理が完了した後に何か後処理を行わせたい場合は不可能であった。

その問題を解決すべく、IJに最後のプロセスを判別し、
実行すべき終了時処理がある場合は実施するようにさせた。
(実行すべき終了時処理とは
全プロセス中最後に選択された終了時処理のアクションを示す)

なお、処理中にプロセスを手動で終了させたり、プロセスを追加したり
どのプロセスが終了時処理のアクションの指定を変更しても
IJは自動でそれらのプロセス増減を感知して判断に組み込むため
処理中のプロセス構成の変更は自由である。

この機能により、処理終了時にメールを送ったり、ディスクのアンマウントを行うなど
必要な後処理がIJで使用可能になった。

「終了時処理のアクションが最後のプロセスで実行されるまでの流れを解説」



・待機中のプロセスが開始された場合は既に選択済みのアクション情報を引き継いで
タイトルに表示するようにした。(IJ限定)

終了時処理のアクションは最後のプロセスのみ実行するようにしたが、
アクションを指定したプロセスが閉じた場合は
何のアクションが指定されているのかが分からなくなる。
そこで 待機中のプロセスが開始された場合は
既に選択済みのアクション情報を引き継いでタイトルに表示するようにした。


・タイトルに表示される終了時処理のアクション名が途切れないようにした

終了時処理のアクションに"標準"以外を選択すると
タイトルにそのアクション名が表示されるがアクション名が
途切れて表示される問題があった。
そこで"標準"以外を選択した場合はバージョン情報(ver.1.6等)のみ
表示しないようにすることで途切れないようにした。


・処理中にSHIFTキーを押下すると中断ボタンが「全て中断」ボタンに変わり、
同ボタンを押下すると全プロセスの処理がキャンセルされるようにした



複数のプロセスを実行中に全ての処理を中断使用とした場合、
1つのプロセスで中断を行うと待機中のプロセスが処理を開始してしまうため
モグラたたきのようにあちこちを止めて、
その後中途半端に処理された結果を手動で戻す羽目になる。

それを解決するため、全てのプロセスを中断可能な「全て中断」ボタンを実装した。

通常、中断ボタンを押下すると中断有無のダイアログが出るが
「全て中断」の場合はそのボタンを押下したプロセスを除き、
(モグラたたき防止のため)ダイアログは表示されず無条件で中断が行われる。

14/11/29
1.5版
・シェル拡張設定の右クリックメニュー拡張に"移動(FastCopy)"を追加した



14/11/20
1.4版 

・複数のジョブの並列処理(Intelligent Job)は
以下の拙作ソフトウェアがいずれか1つでも使用中の場合のみ機能するように変更した。
そうでない場合は従来の処理が行われる。
--------------------------
マウ筋Lite
Invisible mouse cursor
LayoutWindow
TrayExpand Lite
--------------------------

どちらの機能で動作するかはバージョン情報で確認可能である。
(「Intelligent Job [Enable]」/[Disable]」)



・一定期間後に起動不可になる問題を修正

1.3版でのみ発生するため、以下の手順で1.4版へ更新する必要がある

一時的にOSの日付を2014年以前に変更すると発生しなくなるため、
OSの日付を2014年以前であることを確認し、(2015年以降の場合は2014年以前に変更する)
以下を実行する

-------------------------------------------------------
1. Fastcopy Liteのシェル拡張設定で拡張を取り消す
メニューの設定→シェル拡張設定→拡張取消 ボタンを押下する
2. OSを再起動する
3. 再起動後、インストーラを実行し、表示される画面に従う
-------------------------------------------------------

その後、1.4版へ更新する。(OSの日付を変更していた場合は、元に戻す)

・管理者権限で実行時にウィンドウタイトルへ付与される"(Admin)"表記を廃止

14/07/31
セクシーコマンドー外伝 -Intelligent Jobの意義- 
サブタイ 「Windows8のファイル操作を振り返って」

2011年のMSブログに
Improving our file management basics: copy, move, rename, and delete
 (意訳:Win8ではファイル操作がご機嫌になるぜ。ヒャッハー)
が掲載されました。

その説明どおりの機能がWindows8で実装されましたが、
調べた限りではそれ以上の改良は8.1になっても行われていないようです。

Win8では複数のファイルコピーを行うと
このように1つのウィンドウで複数のジョブが表示されますが
常に全部並列で処理されます。


(※ これはWin8の画面です)

「同時に処理されると遅くなるから、
 どれかを一時的に止めることで優先処理が行えるんだぜ。
 どうだい、セクシーだろ? (超意訳)」

と、同ブログの紹介ビデオに登場したあんちゃんがハイテンションで解説していましたが

優先制御くらい自動で行えないのか?

と疑問に思いました。

扱うデータ量が増すに連れて、
ファイル操作のシナリオ(コピー、移動、削除などの順序立て)が重要になるので、
重要な操作ほど処理はシーケンシャルにならざるをえません。
欲張って処理中に手動で並列化を行うと意図しないトラブルになることもあります。

データが少ないときはあまり気になりませんが、多くなるほど処理を効率化しつつ、
手間も削減するという矛盾した願いを叶えたくなります。

それから時が経ち、2014年現在、
手元にあったFastcopy Liteで出来ないか試してみたら
予想以上のものが出来上がってしまいました。

それがIntelligent Job!! (きらっ☆)

全自動で
複数のジョブを依存性のある順序を崩すことなく、
可能な限り並列処理が可能な
夢の機能
なのです!


ローカルドライブだけでなく、ネットワークドライブもサポート。
そしてなんとボリュームラベルでドライブを指定可能な優れものなのです!


14/07/30
1.3版 リリース

・Intelligent Jobのバグを修正
 全てのFastcopy Liteがトレイアイコン状態中に新たにFastcopy Liteを起動すると
 待機中のFastcopy Liteが誤って全て実行される問題を修正

・進捗ログおよびトレイのアニメーション更新速度が低下していたため、
 元の速度になるよう修正した


・SourceとDestDirにボリュームラベルを指定可能にした
 
 通常はドライブ名が含まれたパスを指定しますが、ドライブ名の代わりに
 ドライブのボリュームラベルを使用することが出来るようになりました。

 例えば、 通常、AドライブをBドライブへコピーする場合
 Sourceは「A:\」、DestDirは「B:\」を指定する必要がありますが、
 Aドライブのボリュームラベルが「RamDisk」、
 Bドライブのボリュームラベルが「Data」とすると、
 "ドライブ名+:"をボリュームラベルに置き換えて"#"で囲み、
 Sourceは「#RamDisk#\」、DestDirは「#Data#\」に置き換えることが出来ます。

@画面における使用例


Aコマンドにおける使用例

  AドライブをBドライブの日付毎のディレクトリへコピーする

  start /b "" "cmd /c ""FastCopy.exe" /cmd=diff /estimate /auto_close /speed=full #RamDisk#\ /to=#Data#\%date:~-10,4%%date:~-5,2%%date:~-2,2%""


 ボリュームラベルは処理開始時に自動的に正しいドライブレターに置き換わり、
 画面のSource、DestDirに反映されるため
 具体的にどのドライブへ処理が行われたのかが分かります。
 
 もしボリュームラベルに誤りがある(存在しない)場合は、
 ログウィンドウにその旨が表示され処理がキャンセルされます。



 この機能の利点はドライブパスが変更されても正しく処理が出来ること、
 そしてメディアが存在しない場合は処理自体が行われないことにあります。

 例えばドライブレターが比較的変更されやすいUSBメディアや仮想ディスクを
 バックアップ先に使用する場合、
 どのパスに割り当てられたかを事前に確認する必要がありますが、
 ボリュームラベルで指定する場合、その確認は不要です。

 またバックアップ先のドライブレターが別のメディアに使用されていた場合
 誤ってコピーや同期、削除等が行われることもありません。
 (当然ですが、ボリュームラベルに重複がないことが前提です)

 すなわちボリュームラベルを使用することで意図しないディスク処理を
 防止することが可能になります。

・複数のジョブの並列処理(Intelligent Job)がネットワークドライブに対応した

 Intelligent Jobがネットワークドライブ(\\「マシン名」\…型式)に対応しました。
 すなわちローカルドライブ間だけでなく、ネットワークドライブ間も
 並列実行と処理順序の管理が自動化されるようになりました。
 (同時に処理されるネットワークドライブは常に1つであり、
 異なるネットワークドライブであれば並列に実行される。さらに実行順序も守られる)

 そのため、ローカル、ネットワークが混在したドライブ間において
 高速かつ確実な処理が全て自動で行えるようになりました。
 
 これにより複数プロセスおけるドライブ間の
 ファイル操作(コピー、削除、同期 (同一ドライブ内の移動は除外))では
 世界最速、少なくともトップクラスの処理速度を誇るのではないかと思われます。

 なお、ボリュームラベル指定も混在して使用可能です。




14/07/18
1.2版 リリース

・複数のジョブを可能な限り並列に実行するようにした
 (命名: Intelligent Job)


通常、1つの処理が終わるまで他の処理が待つことになります。
ドライブが異なっている場合は並列処理をさせた方が効率が良いため、
手動(「直ちに実行」ボタン押下)で指定しますが、
毎回実行することは少なからず手間が掛かります。
またプロセス間の処理順序がランダムであるため、
順序に依存するケースではバッチ処理などで常に1プロセスづつ起動する
必要がありました。

そこで、より効率的かつ簡易に行えるようにするため
並列実行と処理順序の管理を自動で行うようにしました。

この機能はディスクの運用コストが高い環境ほど威力を発揮することでしょう。
なお、"全削除"については従来の動作仕様どおり常に単独で実行可能です。




バッチファイルで並列に処理させる場合は
実行ファイルを「FastCopy.exe」や「call FastCopy.exe」で呼ぶのではなく、
startコマンドを使用します。

例えば、EドライブをGドライブへ、FドライブをHドライブへ
差分コピーによるバックアップを並列で行うためには以下のようにします。

path C:\hide\FastCopy Lite

start /b "" "cmd /c ""FastCopy.exe" /cmd=diff /estimate /auto_close /speed=full E:\ /to=G:\""
start /b "" "cmd /c ""FastCopy.exe" /cmd=diff /estimate /auto_close /speed=full F:\ /to=H:\""

複数のジョブを可能な限り並列に実行されるとは、どのような処理になるのか?
以下に具体的な事例を挙げて説明します。










14/07/06
1.1版 リリース

・トレイアイコンに進捗バーが表示されるように変更
 ウィンドウを表示しなくても、トレイアイコンから進捗具合が分かるようにしました。



・メインウィンドウの"予測"と"AutoClose"をデフォルトで有効化
 もし無効化(従来の動作に戻す)したい場合は
 メニューの設定 → 一 般設定 → デフォルト設定で変更できます。



14/05/21
1.0版 リリース

・メニューオプション"前回終了時の位置の復元"の名称を"位置を記憶する"に変更

・終了時の位置情報はメニューオプション"位置を記憶する"が有効の場合に
 保存されるように修正
 (従来は"AutoClose"が有効の場合のみ保存)

・画面範囲外の位置で終了した場合、
 次回起動時は画面範囲内に表示されるようにした

・本readmeのインストール・アンインストールの説明を更新
14/01/02
0.9版 リリース

・14/1/1 以降、起動しない問題を修正

13/04/06
0.8版 リリース

・中断ボタンを押下時にAutoCloseが有効であると自動的にウィンドウが閉じてしまう問題を修正

13/02/03
0.7版 リリース

環境によっては特定のDLLがインストールされていないと、起動に失敗する問題を修正

13/01/13
0.6版 リリース

進捗バーを追加し、進捗状況を視覚的に分かりやすくしました。


12/12/22
0.5版 公開しました

FastCopyは長く愛用していますが、使い込んでくると色々改善したい点が出てきます。
高速コピーツールは比較的多くの類似ソフトがあるため、他に乗り換えるという選択肢もあったのですが、デザインも操作性もシンプルなのが好きなのでFastCopy一択です。
速度も操作性も申し分ないのですが、次の点を改良したくなりました。

1.同期
2.Auto Close
3.コピー後に表示される不要なエラー報告

まず"同期"についてですが、同一容量のドライブ同士で行うと容量不足エラーで中断することがあります。同容量であるならば発生しないはずと思っていましたが、コピー後に削除を行う仕様になっているため、ドライブの空きに余裕が無いと処理が中断することになります。このようになっているのは性能を優先した結果と考えましたが、私にとっての優先事項は機能であったため、処理の順番を逆にすることで解決させました。
改良する前までは他のツールを使用していたのですが、安定度・速度の面でFastCopyの方が優れていると判断していたため、ようやく理想の機能が実現できました。
謳い文句のとおり、やっぱり最速だと思います。
あと、同期の使用頻度は高いため、右クリックメニューの拡張にも追加しました。
次、"Auto Close"。元々シェルの拡張設定には「正常終了時にAuto Close」という設定があることはあるのですが、D&D動作時以外のコピー処理時には機能しないようです。
複数のコピージョブを実行させると、それだけFastCopyウィンドウが表示されるのですがコピーが正常に終了したら閉じて欲しいと思ってました。以前は個々にウィンドウを閉じて面倒であり、どれが正常終了でどれがエラー終了なのかはウィンドウを見ないと分かりませんでしたが、今は残ったウィンドウだけ見ればいいので作業が大分楽になりました。さらにこの機能は処理中でもリアルタイムでオンオフを切り替えられるので、途中で気が変わってモードを変更したくなっても直ぐに対応できます。
最後に"不要なエラー報告"。ドライブ間コピーするといつも出てくるのが「System Volume Information」のコピーエラー通知です。コピーできず、する必要もないなら報告は不要です。フィルタ設定で除外すれば解決しますが、毎回指定するのは面倒です。なのでフィルタ設定に指定しなくてもデフォルトで除外するようにしました。
後は細々とした改良で、"前回終了時の位置を覚える"もついでに追加しました。デフォルトでは無効なので、通常のウィンドウ操作に慣れている場合は有効化することをお勧めします。

12/12/09
0.5版 リリース

オリジナルとの変更点

・同期処理でディスク容量不足エラーの発生を防止
同期先のディスク容量が同期元以上である場合、ディスク容量不足で中断しないようにするため、
フォルダ単位でコピー→ミラーリングの順番で行っていた処理を、
指定単位(ドライブ、フォルダ)毎に一括してミラーリング→コピーの順番に変更した。
また"同期処理(サイズ・日付)"を"同期処理(削除→コピー)"に名称に変更。

・右クリックメニューに同期処理項目 「同期(FastCopy)」を表示可能にした
シェル格納設定に「同期(FastCopy)を出す」を追加し、表示の有無を指定可能。

・正常終了後に自動終了する指定をリアルタイムに指定可能
メイン画面に「Auto Close」を追加し、処理中でも変更可能とした。
有効時は正常終了後に自動終了するようにした。
また一般設定のデフォルト設定にも「Auto Close」を追加。

・RECYCLE.BINとSystem Volume Informationをデフォルトで除外
ドライブ単位でコピーを行うと、デフォルトの設定では処理中に
上記へアクセスできない旨のエラーが発生するが、不要であるために表示されないようにした。

・前回終了時の位置を記憶
ファイルメニューに"前回終了時の位置を復元"を追加した。
有効化すると起動時に前回終了時の位置へ表示されるようになる。
"位置固定"機能とは排他利用となるようにした。

・各ダイアログの位置を常にメイン画面の上部に表示されるようにした
メイン画面から呼ばれる各ダイアログの表示位置をメイン画面に合わせるようにした。

・バージョン画面の表記変更

・TOPボタン削除


inserted by FC2 system