重命名多个子文件夹中的项目

时间:2016-11-03 20:59:01

标签: powershell rename

我有一个软件,它会查找名为" report.txt"的文件。但是,文本文件并不是全部命名为report.txt,而且我有数百个子文件夹要经过。

情景:

J:\Logs
26-09-16\log.txt
27-09-16\report270916.txt
28-09-16\report902916.txt

我想在*.txt中搜索文件J:\logs的所有子文件夹,并将其重命名为report.txt

我尝试了这个,但它抱怨道路:

Get-ChildItem * |
Where-Object { !$_.PSIsContainer } |
Rename-Item -NewName { $_.name -replace '_$.txt ','report.txt' }

1 个答案:

答案 0 :(得分:1)

Get-ChildItem *会获取您当前的路径,因此请使用定义您想要的路径Get-ChildItem -Path "J:\Logs"并添加recurse,因为我们需要所有子文件夹中的文件

然后让我们使用include的{​​{1}}和file参数而不是Get-ChildItem

然后,如果我们将其传递给Where-Object,我们可以在每个对象上使用Rename-Item,其中要重命名的对象为ForEach$_为{{1} }}

NewName

我们可以使用一些别名以单行方式减少这一点,并依靠位置而不是列出每个参数

report.txt