robocopy を使用して、ソース ディレクトリから宛先ディレクトリにファイルを移動しようとしています。問題は、inetpub メール プロセスが宛先ディレクトリを監視し、そこに置かれたファイルをすぐにロックして削除することです。次のようなことが起きているようです。
1) 私は電話する
Robocopy C:\test c:\test1 /COPY:D /MOV /IPG:50 /R:1000000 /W:30 /Z /Log:C:\robolog\RoboLog.txt
Robocopy は /D スイッチを無視しているようで、ログに次の内容を含めます:
Source : C:\test\
Dest : c:\test1\
Files : *.*
Options : *.* /COPY:DT /MOV /Z /IPG:50 /R:1000000 /W:30
2) Robocopy はデータを宛先にコピーし、タイムスタンプを書き込んでから、ソース ディレクトリからファイルを削除するのではないかと思います。Robocopy がタイムスタンプを書き込む前に inetpub がいくつかのファイルを削除するため、ログに次のようなエラーが表示されます。
2011/08/18 10:17:06 エラー 2 (0x00000002) タイムスタンプの保存先ファイル C:\test\Foo.txt
影響を受けるファイルはコピーされますが、ソースディレクトリにも残ります。
3) コピーされたが削除されていないファイルがあるため、Robocopy はエラー 9 で失敗します。
これを修正する方法はありますか? 私の評価が正しければ、Robocopy でデータのみをコピーし、タイムスタンプをデフォルト値のままにしておくことができれば、うまくいくでしょう。
答え1
削除しようとするとファイルがロックされるような気がします。
ボリューム シャドウ コピーの使用を検討してください。これにより、必要なファイルが削除されることなく確実に取得できます。
ただし、これにより、ファイルを自動的に削除することが複雑になります。ファイルを調べてクリーンアップするためのスクリプト (現在のスクリプトの別の部分) を作成する必要があります。