如何使用 PowerShell 脚本高效批量复制文件夹67


在 IT 管理和自动化任务中,经常需要将大量文件夹从一个位置复制到另一个位置。使用 PowerShell 脚本可以轻松、高效地完成此任务,本文将提供分步指南,帮助您创建自己的 PowerShell 脚本来批量复制文件夹。

先决条件

在开始之前,您需要:
一台安装了 PowerShell 5.1 或更高版本的 Windows 计算机。
一个文本编辑器(如记事本或 Visual Studio Code)。
源文件夹的完整路径和目标文件夹的完整路径。

步骤 1:创建 PowerShell 脚本

使用文本编辑器创建一个新文件,并将其保存为 .ps1 扩展名(例如,Copy-Folders.ps1)。复制以下代码到文件中:```powershell
Param(
[string]$SourcePath,
[string]$DestinationPath
)
Get-ChildItem -Path $SourcePath -Recurse | ForEach-Object {
$ItemPath = $ -replace $SourcePath, $DestinationPath
if (! (Test-Path -Path $ItemPath)) {
New-Item -ItemType Directory -Path $ItemPath -Force
}
Robocopy $ $ItemPath /E /R:5
}
```

步骤 2:指定源文件夹和目标文件夹

在脚本文件中,用您的源文件夹和目标文件夹的完整路径替换 $SourcePath 和 $DestinationPath 参数。例如:```powershell
Param(
[string]$SourcePath = "C:Users\username\Source",
[string]$DestinationPath = "C:Users\username\Destination"
)
```

步骤 3:运行脚本

打开 PowerShell 控制台并导航到包含脚本文件的目录。使用以下命令运行脚本:```powershell
.\Copy-Folders.ps1
```

脚本详解

脚本的工作原理如下:
Get-ChildItem 命令获取源文件夹中所有文件和文件夹的列表。
ForEach-Object 循环遍历每个项目。
-replace 运算符将源路径替换为目标路径,创建项目在目标文件夹中的新路径。
Test-Path 命令检查目标路径是否存在,如果不存在则创建它。
New-Item 命令创建目标文件夹中的新项目。
Robocopy 命令实际上复制文件和文件夹。/E 选项复制所有文件和子文件夹,/R:5 选项在遇到错误时重试 5 次。

其他选项

您可以根据需要自定义脚本以满足您的特定需求:
排除文件或文件夹:使用 -ExcludeFiles 或 -ExcludeDirectories 参数。
设置复制进度:使用 -Progress 参数。
记录输出:使用 -OutFile 参数将结果输出到文件。


使用 PowerShell 脚本,您可以轻松、快速地批量复制大量文件夹。通过自定义脚本并利用 Robocopy 的强大功能,您可以轻松自动化此任务,节省时间和精力。

2024-12-06


上一篇:使用 PowerShell 获取主机名脚本

下一篇:如何永久保存 PowerShell 脚本