我正在寻找一个命令来搜索我的主要客户文件夹的所有子文件夹,找出任何标记为" 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'}
如何解决这个问题的任何帮助都会很棒。
答案 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
}
解释:
列出项目
我采用所有目录树
我按目录部分的数量排序,因为你可以有一个指针 像这样 ' C:\ temp \ Quotes-Tendres ggg \ Quotes-Tendres。 FFFF' 和 ' C:\ temp \ Quotes-Tendres ggg'在你的列表中,在这种情况下,我想首先重命名' C:\ temp \ Quotes-Tendres ggg \ Quotes-Tendres。 FFFF'
我重命名目录