2017-06-08 5 views
0

ネットワーク内の一部のファイルのコピーを実行するバッチが1つあります。このコピーは、コピー先のフォルダに既に存在する最新のケースただし、ファイルが使用されている場合、ファイルを更新しようとしている瞬間にのみ、システムは最後にエラーメッセージを表示しません。ファイルがコピーされていない場合、コピーの末尾にエラーが発生する

現時点では、私はこのファイルの問題を使用中に解決したくありませんが、ファイルを更新する際にエラーがあった場合にのみ、コピーの最後に報告するようにしたいと思います。

"%errorlevel%" == "0"の場合は終了しますが、コピーの途中にエラーがあった場合はこの条件は動作しません。

私のコマンド:私はフォルダをループするためにあなたのためであることを示唆していると、各ファイルが使用中であるかどうかを確認した後、あなたはログのいくつかのタイプに、そのファイルの名前を書くことができますどのような

xcopy "C:\origin\." "C:\destination\" /c /d /e /h /i /k /r /y 
+0

/cを使用しましたが、エラーがあっても継続するように指示しています。ただそれを使用しないでください。 –

答えて

1

、おそらく上書きされないものを表示するために後で読むための.txtファイル。

2>nul (
    >>FILE.EXT (call) 
) && (echo file is not locked) || (echo file is locked) 

私はStackOverflowで発見このコードは、(dbenhamは、このためのすべての信用に値する)、ファイルがロックされているかどうかを確認するために使用することができます。 FILE.EXTをファイル名に置き換えます(ループ内ですべてのファイルを簡単にチェックすることができます)。ファイルがロックされている場合は、ファイル名をテンポラリファイル(.txt)にして終了します。 。

上書きする前に使用中のファイルをチェックすると、書き込めないことがわかっているファイルをスキップして、ファイルごとに少しの時間を節約できます。

関連する問題