FastCopyLab / FastCopy

158 stars 4 forks source link

Job指定でバッチファイルから実行時、Sourceの内容が前回実行のままの場合がある #307

Closed miya2go closed 2 months ago

miya2go commented 2 months ago

Job指定でバッチファイルから実行時、Sourceの内容が前回実行のままの場合がありました。 回避方法、または発生時にログの確認以外で気づく方法など教えて頂けたら幸いです。

エラー内容 エラーメッセージは特に無し。ログ上もエラー無し。

再現方法 毎日自動バックアップ実行で、今年の初めから2回発生。手動では再現できない。 ジョブを並列や連続実行時の問題かと思いましたが、並列・連続実行にならないようにタスクスケジューラの実行で15分間隔を空けても発生したことがあります。

コマンドライン・オプションや各種設定 Windowsのタスクスケジューラで2つのジョブを続けて毎日指定時間に自動実行。

start /wait "" /b "C:\Program Files\FastCopy\FastCopy.exe" /job="BackupEDrive" /auto_close
start /wait "" /b "C:\Program Files\FastCopy\FastCopy.exe" /job="BackupDDrive" /auto_close

バージョン・環境 FastCopy ver(原則として最新版のみ) : 5.5.0 OS ver: Windows10 21H2

** FastCopy.logの内容(正常時)

=================================================
FastCopy(ver5.5.0) start at 2024/05/08 12:00:01
<Source>  E:\
<DestDir> H:\_backup_EDrv
<Exclude> \temp\; \$RECYCLE.BIN\; \System Volume Information\; \_ssd\System Volume Information\
<Command> 同期(サイズ・日付)
<JobName> BackupEDrive
-------------------------------------------------

TotalRead  = 0.0 MiB
TotalWrite = 0.0 MiB
TotalFiles = 0 (0)
TotalSkip  = 1,604,905 MiB
SkipFiles  = 330,668 (0)
TotalTime  = 01:50
TransRate  = 0.00 MB/s
FileRate   = 0.00 files/s

Result : (ErrFiles : 0 / ErrDirs : 0) at 2024/05/08 12:01:52

=================================================
FastCopy(ver5.5.0) start at 2024/05/08 12:01:52
<Source>  C:\Users\X\Documents\; D:\aaaaaaa\; D:\aaaa99\; "D:\Aaaaa Lllll\"; D:\ccc.TTTTT\; D:\DDD\; D:\eee\; D:\FF\; D:\xxxx\; D:\HHHH\; D:\mmmm\; D:\mmmm2TTT\; D:\MyAaaaa\; D:\MyBbbbbb\; D:\MyMmmmmDddd\; D:\MyXxxxxxxxMmmmm\; D:\MyPpppp\; "D:\Ttttttt DDD\"; D:\WIN_BBBB\; D:\WIN_TTTT2\; D:\WORK\; D:\学習\
<DestDir> \\nas1\home\_backup_R5_DDrv\
<Exclude> \temp\;\$RECYCLE.BIN\
<Command> 同期(サイズ・日付)
<JobName> BackupDDrive
-------------------------------------------------

TotalRead  = 34 MiB
TotalWrite = 34 MiB
TotalFiles = 153 (40)
TotalSkip  = 384,829 MiB
SkipFiles  = 501,750 (0)
TotalDel   = 0.1 MiB
DelFiles   = 2 (0)
TotalTime  = 14:49
TransRate  = 0.06 MB/s
FileRate   = 0.26 files/s

Result : (ErrFiles : 0 / ErrDirs : 0) at 2024/05/08 12:16:41

** FastCopy.logの内容(問題発生時. 手動で中断. ジョブBackupDDriveでSourceの内容がジョブBackupEDriveのまま)

=================================================
FastCopy(ver5.5.0) start at 2024/05/10 12:00:02
<Source>  E:\
<DestDir> H:\_backup_EDrv
<Exclude> \temp\; \$RECYCLE.BIN\; \System Volume Information\; \_ssd\System Volume Information\
<Command> 同期(サイズ・日付)
<JobName> BackupEDrive
-------------------------------------------------

TotalRead  = 509 MiB
TotalWrite = 509 MiB
TotalFiles = 1,006 (9)
TotalSkip  = 1,604,198 MiB
SkipFiles  = 330,073 (0)
TotalDel   = 379 MiB
DelFiles   = 21 (1)
TotalTime  = 01:30
TransRate  = 24.5 MB/s
FileRate   = 46.2 files/s

Result : (ErrFiles : 0 / ErrDirs : 0) at 2024/05/10 12:01:32

=================================================
FastCopy(ver5.5.0) start at 2024/05/10 12:01:32
<Source>  E:\
<DestDir> \\nas1\home\_backup_R5_DDrv\
<Exclude> \temp\;\$RECYCLE.BIN\
<Command> 同期(サイズ・日付)
<JobName> BackupDDrive
-------------------------------------------------
 Aborted by User

TotalRead  = 252,207 MiB
TotalWrite = 251,956 MiB
TotalFiles = 3,306 (99)
TotalDel   = 384,865 MiB
DelFiles   = 501,985 (107,313)
TotalTime  = 03:37:57
TransRate  = 20.6 MB/s
FileRate   = 0.26 files/s

Result : (ErrFiles : 2 / ErrDirs : 0) at 2024/05/10 15:39:33
shirouzu commented 2 months ago

(本来は最新版でのみ受け付けていますが)聞いたことが無い事象ですね… /job= はそのjob内容を main window の edit control等にペーストすることで実現しています。 それらのペースト挙動に侵入して妨害するようなDLL/hookなどが存在すれば、ありえなくもないですが、何か心当たりはありますか? (だとしても、引数がある場合は、前回のSourceを自動張り付けしないので、/job指定起動後にSource直下の下矢印で履歴選択されたとしか思えない挙動ですね…)

ともあれ次のバージョンで、念のため、ペースト後に edit control内容を再検査するルーチンを入れておきますね。

miya2go commented 2 months ago

早速の回答有難うございます。また最新版で無く申し訳ありません。本日最新版にしました。 ペースト挙動に影響のありそうなアプリとしてはDocoPop, 紙Liteなどあり常駐はしてませんが念のためアンインストールしてみます。それ以外だとマカフィーのウイルス対策ソフトを使用しています。 /job=がedit control関係の影響の可能性ありとのことで、回避策として、直接コマンドライン引数にSource/Destフォルダを指定する方法も試してみたく思います。

shirouzu commented 2 months ago

そうですね。ただ、コマンドラインのSource記述も、内部では Source edit control に張り付けるする操作なので、もしかするとダメかもしれません。

あと、 ・他のフィールドへの貼り付けが成功している点 ・引数がある場合は、最後に実行したSource履歴に張り付けない点(=空欄になる) の2点から考えると、/job= の貼り付け操作が成功した後に、何かによって上書きされたように見えるのですよね。

たとえば ・/job= で起動した後、Source下の▽ボタンから履歴選択した。 ・ fastcopy.exe /job=xxx /autoclose の後ろに E:\ が付いていた。 などでしょうか…なかなか考えづらいですが。

miya2go commented 2 months ago

なるほど、念のためSource/DestDirの履歴数を0に設定してみます。

shirouzu commented 1 month ago

v5.4.0~v5.7.12のバグであった可能性があるため、5.7.14以降への更新をお勧めします。 https://fastcopy.jp/help/fastcopy.htm#history