编写powershell命令以组合特定命名的文件夹

时间:2017-01-06 13:39:08

标签: windows powershell

我正在寻找一个命令来搜索我的主要客户文件夹的所有子文件夹,找出任何标记为" Quotes-Tenders"并将它们与名为" Quotes and Inquiries"。

的文件合并

客户文件夹位于Y:\ Customer Files并包含1,285个搜索,搜索只需要向下一级。

我在测试文件夹上尝试了rename命令,但是如果有两个相同的命名文件,就会遇到冲突错误。

PS C:\Users\Gareth> Get-ChildItem C:\Users\Gareth\Desktop\Test -Recurse -Directory | Where-Objects-Tenders*"} | Rename-Item -NewName { $_.name-replace 'Quotes-Tenders', 'Quotes and Enquiries'}

如何解决这个问题的任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

我建议你这个代码

Get-ChildItem "C:\Users\Gareth\Desktop\Test" -Recurse -Directory | 
    Where Name -like "*Quotes-Tenders*" | 
        sort -Descending {($_.FullName -split '\\').Length } |
            %{
                $newname=Join-Path -Path $_.Parent.FullName -ChildPath $_.Name.Replace('Quotes-Tenders', 'Quotes and Enquiries')
                Rename-Item $_.FullName -NewName $newname
             }

解释:

  • 列出项目

  • 我采用所有目录树

  • 我选择了where子句,
  • 我按目录部分的数量排序,因为你可以有一个指针 像这样 ' C:\ temp \ Quotes-Tendres ggg \ Quotes-Tendres。 FFFF' 和 ' C:\ temp \ Quotes-Tendres ggg'在你的列表中,在这种情况下,我想首先重命名' C:\ temp \ Quotes-Tendres ggg \ Quotes-Tendres。 FFFF'

  • 我重命名目录