1. 程式人生 > >【batch】批處理中Copy與Xcopy的區別

【batch】批處理中Copy與Xcopy的區別

###Date: 2017/6/20

###Author: Soaringlee

1):copy不能在有子目錄存在的檔案中拷貝檔案的同時重新命名此檔名(注:這裡C:為根目錄,bat為子目錄),而xcopy能,不過會出現提示,當然你可以加引數而不使它提示。

C:\>copy c:\bat\hai.bat d:\bat\hello.bat 
提示:系統找不到指定的路徑。 
已複製         0 個檔案。 

但你可以用 

C:\>copy c:\hai.bat d:\hell.bat 
已複製         1 個檔案 

C:\>xcopy c:\bat\hai.bat d:\bat\hello.bat 
目標 D:\bat\hello.bat 是檔名 
還是目錄名 
(F = 檔案,D = 目錄)? f 
C:\bat\hai.bat 
複製了 1 個檔案 


2):copy命令能合併兩個檔案,而xcopy不能 

將檔案1.txt和2.txt合併為3.txt 

 
copy /b c:\1.txt+2.txt c:\3.txt 

命令格式:copy /b 檔案1+檔案2+......檔案N 合併後的檔名 
命令講解:使用“+”將多個相同或不同格式的檔案合併為一個檔案。 

小提示: 

1.在尾部隱藏了文字資料的圖片檔案,在使用了其他檔案編輯器並儲存後,隱藏的文字資料有可能丟失。 
2.MP3檔案在使用此方法連線後,就可以實現連續播放。 
3.合成圖片/歌曲這樣的二進位制檔案必須使用/b引數(b代表Binaty,二進位制),否則將會失敗;另一個合併引數是/a(ASCII,文字檔案),只能用於純文字的合併。兩引數不能同時使用,二進位制方式可以合併文字檔案和二進位制檔案,而文字方式用於純文字的合併。 

3):C:\>copy c:\bat\hai d:\hello 

命令解釋:將C盤bat目錄下所有檔案複製到D盤hello目錄下。你如果要選擇指定定型別的檔案(如txt檔案)到D:\hello下的,則可以用C:\>copy c:\bat\hai\*.txt d:\hello 
注:不會複製子目錄下的檔案及資料夾。D盤hello目錄必須存在 

C:\>xcopy c:\bat\hai d:\hello /e/h 

命令解釋:將C盤bat資料夾拷進D盤hello資料夾,包括所有子目錄及具有隱藏和系統檔案屬性的檔案。無論hello資料夾是否已經存在,如果不存在的話系統會提示你建立。 

注:/e表示複製所有子目錄,包括空目錄。/h複製具有隱藏和系統檔案屬性的檔案。

copy命令用法:

E:\Work\Project_Experience\bat_script>copy /?
將一份或多份檔案複製到另一個位置。

COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/L] [/A | /B ] source [/A | /B]
     [+ source [/A | /B] [+ ...]] [destination [/A | /B]]

  source       指定要複製的檔案。
  /A           表示一個 ASCII 文字檔案。
  /B           表示一個二進位檔案。
  /D           允許解密要建立的目標檔案
  destination  為新檔案指定目錄和/或檔名。
  /V           驗證新檔案寫入是否正確。
  /N           複製帶有非 8dot3 名稱的檔案時,
               儘可能使用短檔名。
  /Y           不使用確認是否要覆蓋現有目標檔案
               的提示。
  /-Y          使用確認是否要覆蓋現有目標檔案
               的提示。
  /Z           用可重新啟動模式複製已聯網的檔案。
/L           如果源是符號連結,請將連結複製
               到目標而不是源連結指向的實際檔案。

命令列開關 /Y 可以在 COPYCMD 環境變數中預先設定。
這可能會被命令列上的 /-Y 替代。除非 COPY
命令是在一個批處理指令碼中執行的,預設值應為
在覆蓋時進行提示。

要附加檔案,請為目標指定一個檔案,為源指定
數個檔案(用萬用字元或 file1+file2+file3 格式)。

xcopy命令用法:

E:\Work\Project_Experience\bat_script>xcopy /?
複製檔案和目錄樹。

XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]
                           [/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/
                           [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/B]
                           [/EXCLUDE:file1[+file2][+file3]...]

  source       指定要複製的檔案。
  destination  指定新檔案的位置和/或名稱。
  /A           僅複製有存檔屬性集的檔案,但不更改屬性。
  /M           僅複製有存檔屬性集的檔案,並關閉存檔屬性。
  /D:m-d-y     複製在指定日期或指定日期以後更改的檔案。
               如果沒有提供日期,只複製那些源時間比目標時間新的檔案。
  /EXCLUDE:file1[+file2][+file3]...
               指定含有字串的檔案列表。每個字串在檔案中應位於單獨的一行
               如果任何字串與複製檔案的絕對路徑的任何部分相符,則排除複製
               該檔案。例如,指定如 \obj\ 或 .obj 的字串會分別排除目錄
               obj 下面的所有檔案或帶有 .obj 副檔名的所有檔案。
  /P           建立每個目標檔案之前提示您。
  /S           複製目錄和子目錄,不包括空目錄。
  /E           複製目錄和子目錄,包括空目錄。與 /S /E 相同。可以用來修改 /
  /V           驗證每個新檔案的大小。
  /W           提示您在複製前按鍵。
  /C           即使有錯誤,也繼續複製。
  /I           如果目標不存在,且要複製多個檔案,則假定目標必須是目錄。
  /Q           複製時不顯示檔名。
  /F           複製時顯示完整的原始檔名和目標檔名。
  /L           顯示要複製的檔案。
  /G           允許將加密檔案複製到不支援加密的目標。
  /H           也複製隱藏檔案和系統檔案。
  /R           覆蓋只讀檔案。
  /T           建立目錄結構,但不復制檔案。不包括空目錄或子目錄。/T /E 包括
               空目錄和子目錄。
  /U           只複製已經存在於目標中的檔案。
  /K           複製屬性。一般的 Xcopy 會重設只讀屬性。
  /N           用生成的短名稱複製。
  /O           複製檔案所有權和 ACL 資訊。
  /X           複製檔案稽核設定(隱含 /O)。
  /Y           取消提示以確認要覆蓋現有目標檔案。
  /-Y          要提示以確認要覆蓋現有目標檔案。
  /Z           在可重新啟動模式下複製網路檔案。
  /B           複製符號連結本身與連結目標相對。
  /J           複製時不使用緩衝的 I/O。推薦複製大檔案時使用。

開關 /Y 可以預先在 COPYCMD 環境變數中設定。
這可能被命令列上的 /-Y 覆蓋。