1

特定のフォルダーに一時ファイルを作成するプログラムがあります。その後、数秒後に自動的にこれらのファイルが削除されます。

これらの一時ファイルを特定のフォルダーにコピーしたかったので、powershell スクリプトを使用してこれを行いたいと思います。

  robocopy startFolder destinationFolder *.TIFF *.JPEG *.jpg *.PNG *.GIF *.BMP *.ICO *.PBM *.PGM *.PPM /s /XO

私の問題は、スケジュールされたタスクを使用できなかったことです(秒数の制限の問題のため)、またはこのpowershellをpowershellスクリプトを使用してWindowsサービスとしてインストールできませんでした(私の知る限り、これは悪い習慣です)。このフォルダーが削除される前に、ファイルが作成された瞬間にファイルを取得しようとして、常にこのpowershellを実行する必要があります。

手を貸していただけますか?ありがとう!

4

1 に答える 1

3

あなたが望むものかどうかはわかりませんが、robocopyにはディレクトリ監視機能が組み込まれています。/mon:1ソースディレクトリを監視し、1 つの変更 (新しいファイルや変更されたファイルなど) を検出したときにコピーを再実行する必要があるものを追加できます。

ただし、これの欠点はおそらく、この方法を使用すると robocopy が終了しないことです。強制終了するまで実行されます。

編集:質問のタイトルで、確立された2つの時間の間に実行する必要があることを指定していることに気付きました。その場合、/rh:hhmm-hhmm新しいコピーを開始できる時間を指定するオプションを追加できます。たとえば、/rh:1000-1200午前 10 時から正午までの間にのみコピー (および監視) を実行する必要があります。

警告: 私は robocopy の「モニター」オプションを使用したことがないので、変更が行われてからコピーが再実行されるまでにどのような遅延が生じるかはわかりませんが、試してみる価値はあります。

于 2013-06-20T11:04:07.207 に答える