首页 文章

使用PowerShell v5,搜索特定文件夹,复制这些文件夹/文件,以及另一个驱动器的路径

提问于
浏览
0

我是PowerShell的新手 . 花了好几天试图得到这个,认为我非常接近,但需要专家向我展示最后一步 .

使用PowerShell v5,需要搜索与特定名称匹配的文件夹,然后将这些文件夹及其文件以及文件夹的路径复制到另一个驱动器 .

脚本现在:

Get-ChildItem s:\ -Filter (Read-Host -Prompt "Enter") -Recurse -ErrorAction SilentlyContinue -Force | 
    Select-Object FullName | ForEach-Object {Copy-Item -Path $_.FullName -Destination 'C:\Robotics\AA\ConfigFiles\Automation Anywhere Files\Automation Anywhere\My Tasks\' -recurse -Force}

这样可以搜索文件夹,返回结果,然后将文件夹和内容复制到目标位置 .

问题是,我实际上需要附加到目标路径的源路径 . 来源是深层可变数量的文件夹 .

有什么建议?

1 回答

  • 0
    • 将Get-ChildItem限制为我插入的文件夹 -Directory

    • Copy-Item 接受来自管道的输入,不需要 ForEach-Object .

    • -replace 是基于RegEx的,并且要求路径 S:\ 中的反斜杠由另一个反斜杠 S:\\ 进行转义 .


    $DestBase = 'C:\Robotics\AA\ConfigFiles\Automation Anywhere Files\Automation Anywhere\My Tasks\'
    $Search = Read-Host -Prompt "Enter folder:"
    Get-ChildItem -Path S:\ -Filter $Search -Directory -Recurse -ErrorAction SilentlyContinue -Force | 
        Copy-Item -Destination {$($_.Fullname) -replace 'S:\\',"$DestBase"} -Recurse -Force -Whatif
    

    如果输出看起来正常,请删除最后一行中的 -WhatIf 参数 .

相关问题