在 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