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

[玩转系统] PowerShell:使用复制项并显示正在复制的文件

作者:精品下载站 日期:2024-12-14 04:36:23 浏览:13 分类:玩电脑

PowerShell:使用复制项并显示正在复制的文件


您可以使用 PowerShell 中的 Copy-Item cmdlet 将文件和文件夹复制到新位置。

要显示正在复制的文件,您可以使用以下方法之一:

方法 1:使用 Copy-Item 和 -verbose

$source = "c:\users\bobbi\data1\*"
$destination = "c:\users\bobbi\data2"

Copy-Item -path $source -dest $destination -verbose

此特定示例使用 -verbose 参数输出有关从 data1 文件夹复制到 data2 文件夹的文件的信息。

方法 2:使用 Copy-Item 和 -passthru

$source = "c:\users\bobbi\data1\*"
$destination = "c:\users\bobbi\data2"

Copy-Item -path $source -dest $destination -passthru |
  ForEach-Object { Write-Host $_.Name }

此特定示例使用 -passthru 参数仅输出从 data1 文件夹复制到 data2 文件夹的文件名。

以下示例展示了如何在实践中使用每种方法。

示例 1:将 Copy-Item 与 -verbose 结合使用

假设我们有位于以下位置的文件夹:

c:\users\bobbi\data1

假设此文件夹包含三个文本文件,并且我们希望将每个文件复制到具有以下位置的文件夹中:

c:\users\bobbi\data2

我们可以使用 Copy-Item cmdlet 以及 -verbose 参数来复制所有三个文件并显示有关正在复制的文件的信息:

$source = "c:\users\bobbi\data1\*"
$destination = "c:\users\bobbi\data2"

Copy-Item -path $source -dest $destination -verbose

以下屏幕截图显示了如何在实践中使用此语法:

[玩转系统] PowerShell:使用复制项并显示正在复制的文件

-verbose 参数显示正在复制的三个文件中每一个的信息,包括每个文件的完整源路径和完整目标路径。

示例 2:将 Copy-Item 与 -passthru 结合使用

如果您想使用 Copy-Item cmdlet 将文件从一个文件夹复制到另一个文件夹并仅显示正在复制的文件名,则可以使用 -passthru 参数的语法如下:

$source = "c:\users\bobbi\data1\*"
$destination = "c:\users\bobbi\data2"

Copy-Item -path $source -dest $destination -passthru |
  ForEach-Object { Write-Host $_.Name }

以下屏幕截图显示了如何在实践中使用此语法:

[玩转系统] PowerShell:使用复制项并显示正在复制的文件

请注意,输出中仅显示正在复制的三个文件的名称:

  • 教练.txt
  • managers.txt
  • regions.txt

通过使用 -passthru 参数,我们能够抑制 Copy-Item 的任何输出,然后通过使用 ForEach-Object 循环,我们可以只能将文件名写入输出。

注意:您可以在此处找到 PowerShell 中 Copy-Item cmdlet 的完整文档。

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

取消回复欢迎 发表评论:

关灯