用Batch檔複製大量檔案 [Command Lin + Exclude]

需求:

撰寫Batch檔結合工作排程,讓系統自動將某個NAS的檔案複製到另外一個

NAS資料夾。

但來源資料夾內有些檔案是尚未製作完成的,必須排除不複製。

方法:

利用xcopy指令(也可以改用robocopy),因有要排除某些檔案,故要用

到/exclude 屬性。本篇方法是建立一個uncopy.txt,內容則為

※代表我要排除帶有TXT檔案中字串的檔案,若是要排除資料夾可以加上\subfolder\

以下附上程式碼:
rem xcopy [source] [destination] [/D[:date] [/P] [/S] [/E] [/y] [/EXCLUDE:file1[+file2][+file3]...] 
rem /d:複製在指定日期當天或之後發生變更的檔案。若無日期,即複製來源檔日期比目的檔日期較新者
rem /y:不要提示您確認是否要覆蓋一個已經存在的檔案
rem /H:複製時複製隱藏檔和系統檔
rem  /C:如果錯誤發生時也繼續複製
rem /P:在建立每個目的檔案時顯示提示。
rem /S:複製每個目錄及其包含的子目錄,不複製空目錄。
rem /E:複製每個目錄及其包含的子目錄,也複製空目錄
rem [/EXCLUDE:file1[+file2][+file3]...]:建立txt檔,內容輸入不要複製的字串 或 資料夾路徑
xcopy L:\*.pdf a:\in\scan1 /d /y /exclude:c:\uncopy.txt
xcopy M:\*.pdf a:\in\scan2 /d /y /exclude:c:\uncopy.txt
xcopy N:\*.pdf a:\in\scan3 /d /y /exclude:c:\uncopy.txt
xcopy O:\*.pdf a:\in\scan4 /d /y /exclude:c:\uncopy.txt
xcopy P:\*.pdf a:\in\scan5 /d /y /exclude:c:\uncopy.txt
xcopy Q:\*.pdf a:\in\scan6 /d /y /exclude:c:\uncopy.txt

留言