2014-03-04 38 views
0

本質上,我需要能夠將源文件夾中的新文件複製到腳本最後一次運行到目標文件夾時不存在的文件中。將日誌文件中不存在的文件複製到文件夾

這裏是我的想法:

-Script運行每1分鐘 - 源文件夾 -Destination文件夾這是複製

過程 -Log文件記錄文件:

- 通過文件運行目錄文件並檢查日誌文件以確定是否需要複製文件。

- 如果文件中的日誌文件中存在禁止複製

- 如果文件不日誌文件存在,複製到目標文件夾,文件路徑寫入/文件名記錄到logfile

- 繼續在目錄下一個文件

這是我的,但我遇到了findstr的問題,並不完全確定這是最好的方式去做。

@echo off 
:start 

for /r "C:\Source" %%i in (*) do (

    echo -------------------------------------- 
    echo Searching for: %%i 
    type log.txt | findstr /L "%%i" 

    if %ERRORLEVEL% EQU 1 ( 
    echo NOT FOUND 
    goto copyfile 
    ) 
    if %ERRORLEVEL% EQU 0 ( 
     echo FOUND 
    ) 
echo ------------------------------------------ 

:copyfile 
echo ------------------------------------------------------------------ 
echo Copy %%i 
copy "%%i" C:\Destination 
echo Writing to log file: %%i 
echo ------------------------------------------------------------------- 
echo %%i >> log.txt 

) 

我將不勝感激洞察力。謝謝大家的時間。

+1

您正試圖在批處理代碼中複製'robocopy'的部分功能。任何理由不使用它? –

+0

您好,先生,配有獎盃!這是完美的,正是我需要的。 1行代碼做到這一切!還使用NSSM將蝙蝠作爲服務包裝。感謝您的見解! – Drew

回答

1

As MC ND指出RoboCopy是答案,當然對我有效。

robocopy source-path destination-path /r:30 /w:20 /mon:1 /mot:1 /log+: path-to-log 

/R:30 - 重試次數來複制30次,如果發生複製錯誤
/重量:20 - 重試拷貝之前等待20秒
/MON:1 - 顯示器源目錄1個文件的變化
/MOT:1 - 在1分鐘檢查更改
前/日誌+: - 附加到日誌文件

要看到CMD型ROBOCOPY上的Robocopy更多信息/?

相關問題