上图是文件结构的一个例子。
我查看过许多cmd行进行大规模重命名,但它们都有相同的前缀或相同数量的字符。
有没有办法重命名具有不同前缀的多个文件,但保留文本和文件类型。所以111 tiger.txt到tiger.txt和32133_lion.txt到lion.txt。
答案 0 :(得分:0)
这在PowerShell中相对容易。关键是使用正则表达式匹配去除前导数字和'_'和空格。
C:>type .\rd\doit.ps1
[cmdletbinding()]
Param()
Get-ChildItem "C:\src\t\rd" |
ForEach-Object {
$_.Name -match "\d*[_ ]*(.*)" | Out-Null
if ($matches[1] -ne $null) {
if ($_.Name -ne $matches[1]) {
Rename-Item $_.FullName $matches[1] -WhatIf
}
}
}
如果您认为将完成正确的重命名,请从-WhatIf
命令中删除Rename-Item
。
C:>.\rd\doit.ps1
What if: Performing the operation "Rename File" on target "Item: C:\src\t\rd\123dog.txt Destination: C:\src\t\rd\dog.txt".
What if: Performing the operation "Rename File" on target "Item: C:\src\t\rd\124cat.txt Destination: C:\src\t\rd\cat.txt".