跳到主內容

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

 

 

參考相關網頁: