在 PowerShell 中複製檔案和資料夾

Marion Paul Kenneth Mendoza 2023年1月30日 2022年5月16日
  1. PowerShell 中的 Copy-Item 命令簡介
  2. 在 PowerShell 中使用 Copy-Item 命令複製特定檔案
  3. 在 PowerShell 中使用 Copy-Item 命令合併多個資料夾
  4. 在 PowerShell 中使用 Copy-Item 命令遞迴複製檔案
  5. 使用 Copy-Item 命令使用 PowerShell 遠端複製檔案
在 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 Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

相關文章 - PowerShell Copy