2013-09-27 54 views
0

我一直在使用的Robocopy備份文件更改後複製源複製當前datewise文件夾,現在我需要做這樣的事情批處理文件通過跳過父文件夾,使用的Robocopy監視和

「ROBOCOPY [d :\ test1 \ 21-09-2013 \ sample.txt] [destination]「

這裏我有很多文件夾作爲Test1,test2,... testn。並在每個測試文件夾下有日期明智的文件夾。

所以我得到了下面的答案,通過跳過其父目錄來複制當前有日期的文件夾。

@ECHO OFF &SETLOCAL 
set "mydate=%date:~10,4%_%date:~4,2%_%date:~7,2%" 
for /d %%a in (D:\test*) do 
(
    if exist "%%~a\%mydate%\" 
    (
    robocopy %%~a\%mydate% E:\backup\%date:~10,4%_%date:~4,2%_%date:~7,2%\ /xo /LOG+:file /TEE /NP /mon:2 
    ) 
) 

它正常工作,而沒有顯示器,如果我用的顯示器,它與第一父目錄即測試1和等待2周的變化停止。

我真正想要的是,它應該從所有父目錄(test1,test2,.. testn)複製可用(當前日期)的文件夾,然後它應該監視並再次運行更改。此外,如果我在Windows任務計劃程序中安排此操作,我無法運行此操作。請求進一步的幫助....

+0

你可以運行批處理文件(沒有監測)每說5分鐘,它會更新任何更改呢?一個循環很容易包含在批處理文件中。 – foxidrive

+0

是的,我可以每15分鐘運行一次(因爲工作在13-15分鐘內結束)。 – user2546359

回答

0

這裏的代碼基本上與你的問題相同,增加了等待900秒/ 15分鐘的timeout命令(vista和更高版本),然後再次運行批處理文件通過分支到:loop標籤。

@echo off 
setlocal 
:loop 
set "mydate=%date:~10,4%_%date:~4,2%_%date:~7,2%" 
for /d %%a in (D:\test*) do (
    if exist "%%~a\%mydate%\" (
     robocopy "%%~a\%mydate%" "E:\backup\%date:~10,4%_%date:~4,2%_%date:~7,2%" /xo /LOG+:file /TEE /NP 
    ) 
) 
timeout 900 
goto :loop 
相關問題