xcopy 應用
BUBU 因在工作上有遇到這樣子的需求,如何將大家共用的範本從 NAS 裡複製一份到用戶端的方式,因目前面上有許多現成的同步軟體可以用,這類型的軟體都是能拿來做為備份使用,所以無法使用因此想說之前有使用過批次檔的方式來做處理,為了以防萬一日後還有機會有用到因此而做記錄
編寫方式
#檢查目標是否有建立該目錄,如果沒有會自動建立
IF NOT EXIST D:\log (
MD "D:\log"
)
#記錄日期及時間
SET today=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
複製資料
xcopy "來源" "目標" /y >> D:\log\%today%.log
xcopy "來源\*.*" "目標" /y >> D:\log\%today%.log
xcopy "來源" "目標" /y /s >> D:\log\%today%.log
指令說明及應用
取的日期及時間
1.以echo %date% 顯示日期
會秀出 2012/10/16 週二
1.1.以set x=%date:~0,4%%date:~5,2%%date:~8,2%,捉取所需的日期資訊 (因為檔名不可有/特殊符號)
%date:~0,4% 由第0個字開始截取4個字 ( 2012 )
%date:~5,2% 由第5個字開始截取2個字 ( 10 )
%date:~8,2% 由第8個字開始截取2個字 ( 16 )
x就會等於20121016
2.以echo %time%顯示時間
會秀出 11:16:03.69
2.1以set y=%time:~0,2%%time:~3,2%%time:~6,2%,捉取所需的日期資訊 (因為檔名不可有:特殊符號)
%time:~0,2% 由第0個字開始截取2個字"時" ( 11 )
%time:~3,2% 由第3個字開始截取2個字"分" ( 16 )
%time:~6,2% 由第6個字開始截取2個字"秒" ( 03 )
y就會等於111603
複製資料
xcopy 參數說明
/A 只複製設定成保存屬性的檔案,不要改變屬性的設定。
/M 只複製設定成保存屬性的檔案,並清除保存屬性。
/D:m-d-y 複製指定日期當天或之後變更的檔案。如果沒給日期,只複製那些來源檔案日期比目的檔案日期為新的檔案。
/EXCLUDE:file1[+file2][+file3]...
指定檔案清單字串。每個字串應在不同行。如果有字串對應到要進行複製的檔案絕
對路徑的任何部分,這個檔案會被排除複製。例如,指定字串
\obj\ 或 .obj 的話,會排除所有在 obj 目錄下副檔名是.obj 的檔案複製。
/P 在建立每個目的檔案時顯示提示。
/S 複製每個目錄及其包含的子目錄,不複製空目錄。
/E 複製每個目錄及其包含的子目錄,也複製空目錄。/S 與 /E相同,能夠用來修改 /T。
/V 驗證每個新檔案。
/W 在複製之前提示您按鍵繼續。
/C 如果錯誤發生時也繼續複製。
/I 如果目的不存在且複製一個以上的檔案的話,就假設指定的目的一定是目錄。
/Q 在複製時不要顯示檔名。
/F 在複製時顯示來源及目的檔案的全部檔名。
/L 顯示要複製的檔案。
/G 允許加密檔案複製到不支援加密的目的地。
/H 複製隱藏檔和系統檔。
/R 覆蓋唯讀檔案。
/T 建立目錄結構,但不複製其中的檔案。不包括空目錄及子目錄。
/T /E 會包括空目錄及子目錄。
/U 只複製已經存在目的位置的檔案。
/K 複製檔案屬性。通常 Xcopy 會重設唯讀的屬性。
/N 用所產生的短檔名來進行複製。
/O 複製檔案所有權及 ACL 資訊。
/X 複製檔案審查設定 (包含 /O)。
/Y 不要提示您確認是否要覆蓋一個已經存在的檔案。
/-Y 示您確認是否要覆蓋一個已經存在的檔案。
/Z 在可重新開始的模式中複製網路檔案。
範例
SET today=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
xcopy "C:\propseed.txt" "D:\" /y >> D:\log\%today%.log
xcopy "C:\ISO Metric\*.*" "D:\ISO Metric\" /y >> D:\log\%today%.log
xcopy "\\NAS1\SE-EP" "C:\Users\%UserName%\aa\" /y /s >> D:\log\%today%.log
xcopy "\\NAS1\SE-Save" "D:\" /y /s >> D:\log\%today%.log
參考相關網頁:
- 2010-07-23 BAT - 批次檔使用心得 (四)
- 批處理bat實現建立、複製、刪除檔案及資料夾
- 微軟bat指令筆記紀錄【CMD】
- windows 批次檔 -依照不同系統將指令檔案複製到啟動區
- [分享] 批次檔BAT中應用Windows的36個環境變數
- 好用的windows備份檔案dos指令XCOPY-教學撰寫:徐嘉裕Neil hsu
- 微軟作業系統內建指令XCOPY備份功能介紹
- Xcopy 複製檔案和目錄,包括子目錄
- N 2008 關於DOS(windows)下取得系統日期的方法:用於自動備份資料
- 批次檔依日期+時間做檔名儲存Log
- 如何在 Batch 檔取得系統的日期、時間欄位 (第三版)