Powershell搜索特定文件夹和副本的子文件夹

时间:2014-05-07 14:44:31

标签: powershell get-childitem copy-item

我正在尝试编写一个powershell脚本,以便从csv文件中搜索文件夹及其子文件夹中的特定文件夹,然后将该文件夹复制到其他位置。

[CmdletBinding()]
Param(
    [Parameter(Mandatory=$True,Position=1)]
    [string]$filePath,
    [Parameter(Mandatory=$True,Position=2)]
    [string]$InstanceName
)

Import-CSV -Delim ',' -Path $filePath  | ForEach-Object {
    Get-ChildItem -Path D:\Folder\$InstanceName -Directory -Recurse
    Copy-Item $_.FOLDERNAME d:\CopyFolder\$InstanceName -recurse
}

这似乎永远存在,显然错误很多,因为文件在尝试复制时不存在。如果我不知道具体的路径,有没有办法只使用Copy-Item?或其他一些替代方法来解决这个问题?

1 个答案:

答案 0 :(得分:0)

有几件事:

  • 您可以使用-filter参数搜索特定文件夹
  • 管道你的get-childitem的结果,以便它只尝试做一个 找到文件夹时复制项目
  • 在get-childitem上使用-recurse参数时使用FullName属性,以确保始终使用该项的完整路径

    Import-CSV -Delim ',' -Path $filePath  | ForEach-Object {
        Get-ChildItem -Path D:\Folder\$InstanceName -Recurse -Directory -Filter $_.FOLDERNAME | ForEach-Object {
            Copy-Item $_.FullName d:\CopyFolder\$InstanceName -Recurse
        }
    }