XCOPY是COPY的擴展,可以把指定的目錄連文件和目錄結構一並拷貝,但不能拷貝系統文件;使用時源盤符、源目標路徑名、源文件名至少指定一個;選用/S時對源目錄下及其子目錄下的所有文件進行COPY。除非指定/E參數,否則/S不會拷貝空目錄,若不指定/S參數,則XCOPY只拷貝源目錄本身的文件,而不涉及其下的子目錄;選用/V參數時,對拷貝的扇區都進行較驗,但速度會降低。
xcopy用法
1 C:\>xcopy /?
2 復制文件和目錄樹。 3
4 XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W] 5 [/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U] 6 [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] 7 [/EXCLUDE:file1[+file2][+file3]...] 8
9 source 指定要復制的文件。 10 destination 指定新文件的位置和/或名稱。 11 /A 只復制有存檔屬性集的文件, 12 但不改變屬性。 13 /M 只復制有存檔屬性集的文件, 14 並關閉存檔屬性。 15 /D:m-d-y 復制在指定日期或指定日期以后更改的文件。 16 如果沒有提供日期,只復制那些源時間 17 比目標時間新的文件。 18 /EXCLUDE:file1[+file2][+file3]... 19 指定含有字符串的文件列表。每一個字符串 20 必須在文件的單獨行中。如果有任何 21 字符串與要被復制的文件的絕對路徑 22 相符,那個文件將不會得到復制。 23 例如,指定如 \obj\ 或 .obj 的字符串會排除 24 目錄 obj 下面的所有文件或帶有 25 .obj 擴展名的文件。 26 /P 創建每個目標文件前提示。 27 /S 復制目錄和子目錄,除了空的。 28 /E 復制目錄和子目錄,包括空的。 29 與 /S /E 相同。可以用來修改 /T。 30 /V 驗證每個新文件。 31 /W 提示您在復制前按鍵。 32 /C 即使有錯誤,也繼續復制。 33 /I 如果目標不存在,又在復制一個以上的文件, 34 則假定目標一定是一個目錄。 35 /Q 復制時不顯示文件名。 36 /F 復制時顯示完整的源和目標文件名。 37 /L 顯示要復制的文件。 38 /G 允許將沒有經過加密的文件復制到 39 不支持加密的目標。 40 /H 也復制隱藏和系統文件。 41 /R 覆蓋只讀文件。 42 /T 創建目錄結構,但不復制文件。 43 不包括空目錄或子目錄。/T /E 包括 44 空目錄和子目錄。 45 /U 只復制已經存在於目標中的文件。 46 /K 復制屬性。一般的 Xcopy 會重置只讀屬性。 47 /N 用生成的短名復制。 48 /O 復制文件所有權和 ACL 信息。 49 /X 復制文件審核設置(隱含 /O)。 50 /Y 復制文件審核設置(隱含 /O)。 51 現存目標文件。 52 /-Y 導致提示以確認改寫一個 53 現存目標文件。 54 /Z 用重新啟動模式復制網絡文件。 55
56 命令行開關 /Y 可以預先在 COPYCMD 環境變量中設置。 57 這可能被命令行上的 /-Y 改寫。
示例
驅動器 d 復制所有文件和子目錄(包括所有空的子目錄)至驅動器 e
xcopy d: e: /s /e
驅動器 d 復制所有文件和子目錄(包括所有空的子目錄、系統文件、隱藏文件)至驅動器 e,使用參數“/h”
xcopy d: e: /s /e /h
"I:\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\1Manual\"目錄中 2019 年 04 月 01 日后更改的文件復制到“z:\oa” 目錄
xcopy "I:\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\1Manual\*" z:\oa /d:04-01-2019 /s /e /y
更新上例中 “z:\oa” 中存在的所有文件而不考慮日期 ,使用“/u”參數
xcopy "I:\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\1Manual\*" z:\oa /s /e /y /u
要獲得前一個命令要復制的文件列表而不實際復制文件,使用“/l”參數
xcopy "I:\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\1Manual\*" z:\oa /l
要將 "I:\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\1Manual" 目錄及其所有子目錄復制到網絡驅動器 z: 上的目錄 oa,保留只讀屬性,並在 z: 上創建新文件時做出提示
xcopy "I:\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\1Manual" z:\oa /s /e /k /p
"bak_20190401" 目錄不存在時“xcopy”會創建該目錄,並禁止顯示創建新目錄時出現的消息,使用“/i”參數
xcopy "I:\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\1Manual" z:\oa\bak_20190401 /s /e /k /p /i
生產環境腳本示例
1 @echo off 2 ::ip=10.11.12.13
3 ::scheduled=01:58/days 4
5 rem copy backfile from local directory to NAS 6
7 xcopy "I:\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\1Manual\*_backup_%date:~0,4%%date:~5,2%%date:~8,2%*.bak" z:\oa /d:%date:~5,2%-%date:~8,2%-%date:~0,4% /s /e /y /i 8
9 rem delete expire backupfile 10
11 forfiles /p "z:\oa" /s /m *.bak /d -31 /c "cmd /c del @path"