Powershellでコードを書いていまして、最終的にはホットフォルダのようなものを作ろうと思っています。
コピーが中途半端に完了してしまわないようにしたいです
発生している問題
収集先のフォルダにファイルやフォルダが移動もコピーもされていなけば期待した通り動くのですが 収集先のフォルダにexplorerなどのコピー中にプログラムを動かしてしまうとコピーが中途半端にされてしまい困っています
該当のソースコード
powershell
1 2 3Get-childitem $収集先フォルダ 4?{$_.creationtime -lt $_.lastwritetime| 5?{$_.lastwritetime -lt (get-date).addseconds(-5)| 6%{copy-item -path $_ -destination $移動先} 7
試したこと
ローカルでは上記の3行目の更新日時5秒前程度で動きますが、ネットワークドライブだともっと長くする必要があり、安定性・速度に問題があります。
Windows なら robocopy を使いましょう。
主題とは離れますが、Robocopyのコマンドを使えば、例えば、収集先のフォルダの中にフォルダ1・2が移動やコピーは終了済み。フォルダ3・4が移動中コピー中の場合、フォルダ1・2のみコピーするということはことは可能でしょうか?
普通、呼び出したら終わるまで待ちます。
順番に呼び出せばいいんじゃないでしょうか。
すいません言葉足らずだったかもしれません。
収集先のフォルダ自身がネットワーク上にありそれに不特定数のユーザが不定期に可変数のフォルダなどを入れられるためにその、フォルダなどがコピーもしくは移動が完了しているかを知りたいというものです。
完了しているものだけでも処理を開始させて、未完了のものはスキップしたいいんです。
robocopy でそれはできますが、その前の話と繋がりません。
まずこれで何ができるかを見てみたら話が早いんじゃないでしょうか。
https://www.atmarkit.co.jp/ait/spv/0704/20/news130.html