在 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