在powershell命令中使用通配符批量重命名多个文件

时间:2018-11-12 09:11:57

标签: powershell

我如何使用在Powershell Commandlet中由固定部分和变化部分组成的公式批量重命名在同一文件夹中找到的多个文件(尽管它们的原始文件名是重命名)

即输出文件名:

Greenfarm_0001
Greenfarm_0002
Greenfarm_0003
Greenfarm_0004
Greenfarm_0006

谢谢

2 个答案:

答案 0 :(得分:2)

如果您想要一种衬板,

Dir | %{Rename-Item $_ -NewName ("Prefix_{0}.jpg" -f $nr++)}
  • 您需要先初始化计数器
  • 重命名项接受管道输入,因此不需要foreach
  • 要更新脚本块中的计数器,您需要使用([ref]$nr).Value++

$nr=1;Get-ChildItem -Filter *.jpg|Rename-Item -Newname {"Greenfarm_{0:d4}.jpg" -f ([ref] $nr).Value++} -WhatIf

如果输出看起来正常,请删除-WhatIf

答案 1 :(得分:1)

您在这里:

$prefix = "prefix_"
$counter = 1
Get-ChildItem -Path "C:\temp" -File | foreach {

    Rename-Item -Path $_.FullName -NewName "$prefix$counter$($_.Extension)"
    $counter++
}

它将读取给定路径中的所有文件,并使用指定的前缀和递增的数字对其进行重命名。

也使用Get-ChildItem -Path "C:\temp" -File -Recursive对子文件夹执行相同的操作。