在 PowerShell 中複製檔案和資料夾
-
PowerShell 中的
Copy-Item
命令簡介 -
在 PowerShell 中使用
Copy-Item
命令複製特定檔案 -
在 PowerShell 中使用
Copy-Item
命令合併多個資料夾 -
在 PowerShell 中使用
Copy-Item
命令遞迴複製檔案 -
使用
Copy-Item
命令使用 PowerShell 遠端複製檔案
在所有程式語言中都有幾個用於複製檔案的命令。但是,在 PowerShell 中,將 PowerShell 指令碼中的檔案或資料夾從位置 A 複製到位置 B 的最流行方法是使用 PowerShell Copy-Item
cmdlet。
本文將討論如何複製資料夾和檔案,同時讓我們能夠遞迴資料夾中的檔案,使用萬用字元選擇我們需要複製的檔案,並使用 Windows PowerShell Remoting 進行檔案複製。
PowerShell 中的 Copy-Item
命令簡介
Copy-Item
命令是 Windows PowerShell 提供程式 cmdlet 的一部分。它是一個通用 cmdlet,可通過其 Item
名詞識別。
使用 Copy-Item
cmdlet,PowerShell 允許開發人員以多種不同方式複製資料夾和檔案。
Copy-Item
命令使用 -Path
引數作為原始檔路徑和 -Destination
引數作為目標資料夾路徑將單個檔案從一個位置複製到另一個位置。
Copy-Item -Path C:\Temp\File1.txt -Destination C:\PS\
此 cmdlet 還可以複製資料夾。
Copy-Item -Path C:\Temp\Scripts -Destination C:\PS\
例如,資料夾中有一個只讀檔案。預設情況下,Copy-Item
不會覆蓋它。
在程式碼片段中新增 -Force
引數以強制覆蓋。
Copy-Item -Path C:\Temp\Scripts -Destination C:\PS\ -Force
在 PowerShell 中使用 Copy-Item
命令複製特定檔案
除了複製單個資料夾或檔案之外,我們還可以複製整個內容。Copy-Item
命令的 -Path
引數接受萬用字元,如星號 (*
) 以匹配零到多個字元或問號 (?
) 僅匹配單個字元。
Copy-Item -Path C:\Temp\*.ps1 -Destination C:\PS\
Copy-Item -Path 'C:\Temp\File?.txt' -Destination C:\PS\
在 PowerShell 中使用 Copy-Item
命令合併多個資料夾
Copy-Item
的另一個功能是同時複製多個資料夾。此外,我們可以將各種路徑傳遞給 -Path
引數。
Copy-Item
將檢視每一個,根據路徑複製資料夾或檔案,並將它們全部合併到一個目標中。
Copy-Item -Path C:\Temp\*,C:\Scripts\*,C:\Docs\* -Destination C:\PS
在 PowerShell 中使用 Copy-Item
命令遞迴複製檔案
我們通常會遇到父資料夾中有許多子資料夾的情況,我們想複製哪些檔案。在 Copy-Item
上使用 -Recurse
引數將檢視每個子資料夾並遞迴複製每個子資料夾中的所有檔案和資料夾。
Copy-Item -Path C:\Temp\ -Destination C:\PS -Recurse
使用 Copy-Item
命令使用 PowerShell 遠端複製檔案
PowerShell 版本 5 的一項功能是此命令能夠使用 WinRM 和 PowerShell 遠端會話。因此,例如,Copy-Item
使用現有的 PowerShell 會話並傳輸 -Session
引數檔案。
當會話通訊被加密時,這是繞過防火牆和額外安全層的好方法。
$session = New-PSSession -ComputerName WIN-FS01
Copy-Item -Path C:\Temp\File1.txt -ToSession $session -Destination 'C:\Temp'
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn