COPY 是 CMD/批次檔中最基礎的檔案複製指令,支援單檔/多檔複製、檔案合併 (二進位/文字)、輸出到裝置 (印表機、序列埠、CON)、通配符批次操作與路徑縮寫。
基本語法
COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/A | /B] 來源 [/A | /B] [+ 來源 [/A | /B] ...] [目的地 [/A | /B]]
核心參數
| 參數 | 功能 |
/A | 文字檔模式 (以 EOF/Ctrl+Z 判斷結尾) |
/B | 二進位模式 (依檔案大小複製,預設) |
/D | 允許建立解密的目的檔案 (EFS) |
/V | 寫入後驗證正確性 |
/N | 目的檔案使用短檔名 (8.3 格式) |
/Y | 覆寫不提示 (預設在批次檔中) |
/-Y | 覆寫前提示確認 (互動模式預設) |
/Z | 可重新啟動模式 (網路複製中斷可續傳) |
實戰範例
1. 基本單檔複製
copy autoexec.bat autoexec.old # 同目錄改名複製
copy c:\dos\edit.com . # 複製到目前目錄,保留檔名
copy edit.com a: # 複製到磁碟機 A:
2. 通配符批次複製
copy a:k*.* . # 複製 A: 所有 K 開頭檔案到目前目錄
copy c:\*.bat c:\zht\ # 複製 C:\ 根目錄所有 .bat 到 zht 目錄
3. 檔案合併 (強大功能)
# 文字檔合併 (依序附加)
copy /a file1.txt+file2.txt+file3.txt combined.txt
# 二進位檔合併 (如分割壓縮檔還原)
copy /b part1.rar+part2.rar+part3.rar full.rar
# 複製自身產生空檔/測試
copy /b nul empty.bin
4. 輸出到裝置
copy file.txt con # 顯示檔案內容到螢幕 (等同 type)
copy file.txt prn # 列印文字檔
copy file.txt com1 # 送至序列埠 COM1
5. 從裝置輸入
copy con newfile.txt
輸入內容...
^Z (Ctrl+Z) 結束
# 建立新文字檔,等同 echo 重導向但支援多行
進階技巧與注意事項
- 目錄複製: COPY 不支援目錄樹複製,請用
XCOPY、ROBOCOPY (Win7+ 內建、功能最強)。
- 長路徑/Unicode 檔名: COPY 支援
\\?\ 延伸路徑,但建議改用 PowerShell Copy-Item。
- 合併順序:
+ 左右檔案順序決定輸出順序,二進位合併務必用 /B 避免 EOF 截斷。
- 網路複製: 加
/Z 斷點續傳,大檔案跨 WAN 傳輸必備。
- 環境變數:
COPYCMD 可設定預設參數 (如 SET COPYCMD=/-Y 強制提示)。
COPY vs XCOPY vs ROBOCOPY
| 指令 | 適用場景 | 關鍵特性 |
| COPY | 單檔/少數檔、合併、裝置 I/O | 簡單、內建、支援合併 |
| XCOPY | 目錄樹複製、保留屬性/ACL、排除清單 | /E /H /K /O /X /EXCLUDE:file |
| ROBOCOPY | 企業級備份/遷移、鏡像、多執行緒、重試/記錄 | /MIR /MT:8 /R:3 /W:5 /LOG:file /TEE |
COPY 雖簡單,但掌握其合併、裝置輸出、通配符與參數組合,能處理許多批次腳本中的檔案操作需求。大規模備份/遷移請直接使用 ROBOCOPY。