2013-06-20 46 views
1

我有一個程序在特定文件夾中創建臨時文件。然後,幾秒鐘後自動刪除這些文件。連續執行robocopy powershell兩次建立

我想這些時間文件複製到一個特定的文件夾,我想用PowerShell腳本來做到這一點:

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

我的問題是我不能使用計劃任務(因爲限制秒的問題),或者將這個powershell作爲Windows服務與powershell腳本一起安裝(據我所知這是一個不好的做法)。在這個文件夾被刪除之前,我需要這個運行所有時間的powershell來創建文件。

你能幫我一下嗎?謝謝!

+0

任何你可以實現像DFS-R而不是'Robocopy'解決方案的機會嗎? – Kane

回答

3

不確定這是你想要的,但robocopy確實具有內置的目錄監視功能。您可以添加/mon:1,它應監視源目錄,並在檢測到一個更改(例如,新文件或更改文件)時重新運行副本。

但是,這可能是由於使用這種方法,robocopy不會退出 - 它會運行,直到你殺死它。

編輯:我剛剛注意到您在問題標題中指定了這應該在兩個建立時間之間運行,在這種情況下,您可以添加/rh:hhmm-hhmm選項來指定新副本可以啓動的時間。例如,/rh:1000-1200應該只在上午10點和正午之間執行副本(並因此進行監視)。

警告:我還沒有嘗試過使用robocopy的「monitor」選項,所以我不確定在發生更改和重新運行副本之間會有什麼樣的延遲,但這是值得的一槍。

+0

我用'/ mon:1'進行了測試,並且總是不工作:(另一個進程可能太快了,它創建了59個不同的文件,2個png,但是powershell無法捕捉到它... – AlexMJ

+0

我想你會有同樣的問題,無論 - 你可以使任何自定義的Windows應用程序[監視目錄更改](http://msdn.microsoft.com/en-us/library/windows/desktop/aa365261.aspx ),但在你的情況下,你會一直在與另一個進程競爭。也許你需要調查一個不同的方法? – icabod

+0

我會的,謝謝你的時間^^ – AlexMJ