C ドライブ (NTFS) から Pendrive (exFAT) に新しいファイルのみをバックアップするバックアップ スクリプトに Robocopy が適しているかどうかを評価しています。
このコマンドを実行しています。このコマンドは機能しますが、宛先がリムーバブル USB ペンドライブであり、exFAT 形式でフォーマットされている場合、ログが誤っているようです。宛先が FAT または NTFS の場合、この問題は発生しません。
robocopy C:\Temp\F1 D:\F1 /XO /E /FFT /LOG:C:\Temp\robo.txt /NP /NDL /R:1 /W:3
上記のコマンドでは、D: はペンドライブの文字であり、コマンドまたは .BAT ファイルは Windows 7 Ultimate 64 では常に管理者として実行されました。
この問題は、以下で説明するケース 2 で発生します。
ケース 1 - ログのスクリーンショットを参照してください。これは正しいようです。コピーされたすべてのファイル名がログに記録され、コピー統計は正確です。3 つのファイルがコピーされました。
ケース 2 - ソースにファイルを 1 つ追加します。これで、この新しいファイルのみがコピーされますが、ログにはすべてのファイルが表示され、統計が間違っています。4 つのファイルがコピーされたと表示されます。
このタイプの一貫性のないログは、保存先が exFAT でフォーマットされたペンドライブである場合にのみ発生します。FAT または NTFS では問題はありません。
OS - Windows 7 Ultimate 64。
質問。
- これは、宛先が exFAT ペンドライブの場合の Robocopy ログ記録における問題またはバグですか?
- そうでない場合、これを修正するコマンドのオプションが不足していますか?
これについてさらに明確にしていただければ幸いです。
編集
ケース 3 - 変更はありませんが、ログ ファイルに 4 つのファイルすべてがリストされます。
/FFT の有無によってログ データは変更されません。
Free File Sync を使用して確認したところ、ファイル サイズ、タイムスタンプ、実際の内容に関しては両方のディレクトリが同期しています。コピーではなく、ログに記録されていると思います。
編集2
ソースに 312 MB の 2 つの大きなファイルを一緒に配置しました。USB 2 ペンドライブの宛先にコピーするのに 42 秒かかります。ログは正常です。
ここで、コマンドを再度実行します。0 秒で終了しますが、まだ 2 つのファイルがログに記録され、統計には 2 つのファイルがコピーされたことが示されます。USB 2.0 ペンドライブ上の 312 MB のデータでは、これは不可能だと確信しています。
答え1
私のWindows 7のRobocopyのバージョンは6.1.7601.23403。
その Robocopy のバージョンは 2009 年のものです。10 年も古いものです。
Windows 10 (64) PCからWindows 7 (64)にRobocopyをコピーしようとしましたが、コマンドを.BATに入れると、有効なWin32アプリケーションではないというエラーが表示されます。
残念ながら、Windows 7特定の前提条件が欠けている現在の Robocopy 実行可能ファイルに必要なため、最新の実行可能ファイルを Windows 10 システムから単純にコピーすることはできません。
基礎となるコンポーネントがそれをサポートする必要があるため、Windows 8 からコピーしても機能しません。
Robocopy は、基盤となるファイル システム コンポーネントを呼び出すユーティリティにすぎません。
最新バージョンの Robocopy を搭載した Windows 10 1903 システムでは、この問題を再現できませんでした。
問題はコピープロセス自体ではなくログにあることは間違いありません。Robocopyは実際するここではまさにその通りですが、誤って報告されているだけです。
ここで見られるような瞬時のコピーは不可能です。あるボリュームから別のボリュームにファイルをコピーするのに最初に42秒かかる場合、同じプロセスはできない2回目は0秒かかります!
最初のファイル コピーの速度を制限するボトルネックは、後続のコピーにもまったく同じように影響します (USB 帯域幅やフラッシュ ドライブの書き込み速度など)。
これは、比較的大きなファイルを含むコピージョブを実行して、どれくらい時間がかかるかを観察し、その後、コピー先のドライブから大きなファイルを削除して同じジョブを再実行することで簡単に実証できます。違うボリュームごとにほぼ同じ時間がかかります。
ログの不一致:
緑 = 真。
赤 = 誤り。
最初の緑のボックスに表示されている内容を明確にするために、「100%新規ファイルはありませんログが空白スペースを表示するのに正しい場所を示すために「行」を追加しました。これらのファイルのコピーは本当に実行された場合、正常にコピーされた各ファイルの横に「100%」と「新しいファイル」が表示されます。
これらのファイルのコピーは発生しませんでした。OP はそこに 20 GB のデータを入れても、Robocopy は即時転送を報告します。
結論:
Windows 7 では 2009 バージョンより新しいものを使用できないため、OP は Robocopy のバージョンをアップグレードできません。
すぐに選択できる選択肢は、XCOPY またはその他のファイル コピー ユーティリティを使用することです。
OP が最終的に Windows 10 などの新しいバージョンの Windows にアップグレードすると、この古いバグが修正された最新バージョンの Robocopy が使用され、このログ記録の不具合は発生しなくなります。
答え2
Robocopy は、異なるファイル システム間でファイルを転送するときに問題を引き起こすことが知られています。たとえば、NTFS は 64 ビットのタイム スタンプであるため、ex fat は 3 つの個別のフィールドを使用してタイム スタンプを保存し、1 バイトは UTC 時間のタイム ゾーンになります。
また、要約に正しい情報が表示されない例もいくつかあります。例えばここ要約計算は (大まかに言えば) コピー手順に直接統合されていないので、何らかのバグがあると思われます。しかし、これを証明する「公式」文書は見つかりませんでした。ログと要約のどちらが実際に正しいのかを確認することもできます。