当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell Copy-Item - 将文件复制到其他位置

作者:精品下载站 日期:2024-12-14 16:57:07 浏览:16 分类:玩电脑

PowerShell Copy-Item - 将文件复制到其他位置


PowerShell 中的 Copy-Item cmdlet 将文件从一个位置复制到另一个位置。它复制文件系统中的文件和目录以及注册表驱动器中的注册表项和条目。

PowerShell Copy-Item 在复制到另一个位置时不会删除或剪切项目。您可以使用 Copy-Item 将文件复制到远程计算机。

在本文中,我们将讨论如何使用 PowerShell Copy-Item cmdlet 将文件复制到另一个位置。

PowerShell 复制项

Copy-Item 将文件从源复制到目标。

语法

Copy-Item
    [-Path] <String[]>
    [[-Destination] <String>]
    [-Container]
    [-Force]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-Recurse]
    [-PassThru]
    [-Credential <PSCredential>]
    [-WhatIf]
    [-Confirm]
    [-FromSession <PSSession>]
    [-ToSession <PSSession>]
    [<CommonParameters>]

参数

-Path:指定要复制的项目的路径。允许使用字符串数组和通配符。

-Destination:指定要复制文件的其他位置的路径。默认目标是当前目录。

-Recurse:指定从目录和子目录递归复制文件。

-Filter:指定过滤器来限定Path参数。

使用 Copy-Item 在 PowerShell 中复制文件

使用 PowerShell Copy-Item cmdlet 将文件从源位置复制到目标位置。

让我们考虑一下,您在目录 D:\PS\ 中有一个文件,并且想要将其复制到另一个位置 D:\PS\Config

Copy-Item -Path D:\PS\calc.txt -Destination D:\PS\Config\

在上面的 PowerShell 脚本中。 Copy-Item 使用 Path 参数指定要复制的文件项的源位置。

Copy-Item 使用Destination 参数指定文件项将复制到的位置路径。

它将把文件复制到目标位置。

请注意,这里我们指定了没有文件名的目标路径,因此文件将使用源文件名进行复制。

通过在路径中提供文件名,您可以在复制到目标时重命名文件

以下 PowerShell 脚本将文件复制到目标位置,并为文件指定新名称和目标路径。

Copy-Item -Path D:\PS\calc.txt -Destination D:\PS\Config\Calculation_R1.txt

将文件夹内容递归复制到目标

使用 PowerShell Copy-Item cmdlet,它将文件夹内容从源位置递归复制到目标位置。

让我们考虑一个将 D:\PS\Config 目录的内容复制到目标位置 D:\PS\Config-Backup 的示例

Copy-Item 使用 Path 参数指定另一个现有目录路径的源位置和 Destination 参数。

它将所有文件从源目录递归复制到目标文件夹。

Copy-Item -Path D:\PS\Config\* -Destination D:\PS\Config-Backup -Recurse    

在上面的 PowerShell 脚本中,Copy-Item 使用 Recurse 参数将子目录和文件从源位置复制到另一个位置。

请注意,在我们的示例 Config 中,它不会复制源目录。

PowerShell 递归复制文件夹和文件

要将源文件夹和文件、子文件夹递归复制到目标位置,请使用 PowerShell Copy-Item cmdlet。

让我们考虑一个示例,以递归方式将 D:\PS\Config 目录的内容复制到另一个位置 D:\PS\Config-Backup

在以下 PowerShell 脚本中,Copy-Item 使用 PathDestination 参数分别指定源目录和目标目录。

它使用 Recurse 参数将文件夹和文件递归复制到另一个位置。

Copy-Item -Path D:\PS\Config -Destination D:\PS\Config-Backup -Recurse 

上述用于将目录内容复制到其他位置的 PowerShell 脚本的输出将 D:\PS\Config 文件夹及其文件复制到位置 D:\PS\Config-Backup

将文件复制到远程计算机

要将文件从本地计算机复制到远程计算机,请使用远程计算机的名称和凭据创建会话。

Copy-Item cmdlet 有一个 ToSession 参数来指定会话名称。

让我们考虑一个示例,将文件复制到名为 INCORP-EU-117 的远程计算机。

使用 ShellGeek\Admin 凭据与远程计算机 INCORP-EU-117 创建会话,并将结果存储在 $session 变量中。

使用 Copy-Item 命令通过 ToSession 参数、源目录路径和目标目录路径将文件复制到远程计算机。

# Create a session with remote computer using New-Session
$Session = New-PSSession -ComputerName "INCORP-EU-117" -Credential "ShellGeek\Admin"

# Use Copy-Item to copy files to a remote computer
Copy-Item "D:\PS\Config\" -Destination "C:\Config-BackUp\" -ToSession $session -Recurse

在上面的 PowerShell 脚本中,Copy-Item cmdlet 将文件内容从源位置递归复制到远程计算机。

它将子文件夹及其文件结构复制到远程计算机。

酷提示:如何在 PowerShell 中将文件从 Windows 复制到 Linux!

将远程计算机的文件夹和文件复制到本地计算机

要将远程计算机的文件夹和文件复制到本地文件夹,请使用 Copy-Item cmdlet 创建与远程计算机的会话,并使用 Copy-Item 中的 FromSession 参数强>命令。

让我们考虑一个从名为 INCORPP-EU-117 的远程计算机复制目录和文件的示例。

使用 New-Session cmdlet 与远程计算机 INCORP-EU-117 以及凭据 ShellGeek\Admin 创建会话,并将结果存储在$session 变量。

使用 Copy-Item cmdlet,它使用远程计算机路径和本地计算机路径。

它使用 FromSession 参数指定与远程计算机创建的会话。

# Create a session with remote computer using New-Session
$Session = New-PSSession -ComputerName "INCORP-EU-117" -Credential "ShellGeek\Admin"

# Use Copy-Item to copy files to a remote computer
Copy-Item "C:\Log\Config-Backup" -Destination "D:\PS\Config" -FromSession $session -Recurse

在上面的 PowerShell 脚本中,Copy-Item cmdlet 将整个目录及其文件从远程计算机复制到本地计算机。

使用过滤器复制文件

PowerShell Copy-Item cmdlet 有一个 Include 参数,用于筛选要复制到其他位置的项目。

让我们考虑一个示例,D:\PS\Config 文件夹包含如下文件:

  • D:\PS\Config\app-1.ps1
  • D:\PS\Config\app-1.config
  • D:\PS\Config\app-2.config
  • D:\PS\Config\app-3.config
  • D:\PS\Config\Get-PI.ps1

若要将以名称 app 开头的文件复制到其他位置,请使用带有 Include 参数的 Copy-Item cmdlet。

# Copy the files that start with name app*
Copy-Item -Path D:\PS\Config\* -Destination D:\PS\Config-Backup -Include app*

# Get the directory content
Get-ChildItem -Path D:\PS\Config-Backup\*  

在上面的 PowerShell 脚本中,Copy-Item cmdlet 使用 Path 参数指定源位置,使用 Destination 参数指定另一个位置路径。

Copy-Item 有一个 Include 参数,用于过滤以 app* 开头的文件名

它将文件名以 app* 开头的文件复制到目标路径。

上述使用过滤器复制文件的 PowerShell 的输出是:

[玩转系统] PowerShell Copy-Item - 将文件复制到其他位置

酷提示:如何在 PowerShell 中复制晚于日期的文件!

结论

希望上面有关如何在 PowerShell 中使用 Copy-Item cmdlet 将文件复制到目标位置的文章对您有所帮助。

您可以在 ShellGeek 主页上找到有关 PowerShell Active Directory 命令和 PowerShell 基础知识的更多主题。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯