PowerShell 複製檔案/資料夾指令 Copy-Item

在 Linux 中我們可以使用 cp 指令來複製檔案 cp 是 copy 的縮寫。在 PowerShell 中則是使用 Copy-Item 指令。

在 PowerShell 中可以替指令加上別名,我們使用 Get-Alias 指令查看 Copy-Item 指令的別名可以發現有 copy, cp, cpi ,使用這三個指令實際上都是在執行 Copy-Item 指令:
    
Get-Alias -Definition Copy-Item

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           copy -> Copy-Item
Alias           cp -> Copy-Item
Alias           cpi -> Copy-Item
    

複製檔案

將 my.png 檔案複製到 C:\Users\ruyut\Desktop 資料夾中:
    
cp "my.png" "C:\Users\ruyut\Desktop"
    


註: 若路徑中沒有空白,可以省略雙引號

複製檔案(包含所有子資料夾和檔案)

將 C:\Users\ruyut\Desktop 資料夾複製到 C:\Users\ruyut\Documents 資料夾中:
    
cp  "C:\Users\ruyut\Desktop" "C:\Users\ruyut\Documents"
    

上面的指令只會複製資料夾,如果需要包含完整的子資料夾和檔案則需要加上 -Recurse 參數。
    
cp  "C:\Users\ruyut\Desktop" "C:\Users\ruyut\Documents" -Recurse
    

強制覆蓋

如果複製的檔案中子資料夾已經存在,則會跳出 already exists 的錯誤訊息:
    
cp  "C:\Users\ruyut\Desktop" "C:\Users\ruyut\Documents" -Recurse
Copy-Item: An item with the specified name C:\Users\ruyut\Documents\test already exists.
    

附加 -Force 參數就可以強制覆蓋資料夾,避免出現已經存在的錯誤訊息:
    
cp  "C:\Users\ruyut\Desktop" "C:\Users\ruyut\Documents" -Recurse -Force
    



參考資料:
Microsoft.Learn - Copy-Item

留言