如何重命名文件夹中的每个文件:
模式是:(文件名的第一部分).digit_(endoffilename)
例如
a.1_f
b.2_f
c.3_g
我想用
替换它a.01_f
b.02_f
c.03_ g
...
感谢您的帮助
答案 0 :(得分:5)
试试这个:
Get-ChildItem | Where {!$_.PSIsContainer} |
Rename-Item -NewName {$_ -replace '([^.]+)\.(\d)(\w)', '$1.0$2$3'} -wh
或者,如果您有超过九个文件:
gci | ? {!$_.PSIsContainer -and $_.Name -match '([^.]+\.)(\d)(\w+)'} |
rni -NewName {$matches[1] + ("{0:00}" -f [int]$matches[2]) + $matches[3]} -wh
第二个示例使用别名来缩短命令(更容易输入)。 gci
是Get-ChildItem
的别名,?
是Where-Object
的别名,rni
是Rename-Item
的别名。 -wh
调用WhatIf
功能,PowerShell将在其中显示它将执行的操作,以便您可以旋转命令,直到您对结果的内容感到满意为止。然后删除-wh
以实际执行它。
答案 1 :(得分:0)
执行此操作的一种方法是通过正则表达式拆分文件,然后从部件中汇编新文件名,然后是Rename-Item
\w+\.\d+_\w
Get-ChildItem
& Foreach-Object
,或者我喜欢写ls | % {}