在PowerShell中重命名文件

gru*_*ber 2 powershell

如何重命名文件夹中的每个文件:

模式是:(文件名的第一部分).digit_(endoffilename)

例如

a.1_f
b.2_f
c.3_g
Run Code Online (Sandbox Code Playgroud)

我想用它替换它

a.01_f
b.02_f
c.03_ g
Run Code Online (Sandbox Code Playgroud)

...

感谢帮助

Kei*_*ill 5

试试这个:

Get-ChildItem | Where {!$_.PSIsContainer} | 
    Rename-Item -NewName {$_ -replace '([^.]+)\.(\d)(\w)', '$1.0$2$3'} -wh
Run Code Online (Sandbox Code Playgroud)

或者,如果您有超过九个文件:

gci | ? {!$_.PSIsContainer -and $_.Name -match '([^.]+\.)(\d)(\w+)'} |  
  rni -NewName {$matches[1] + ("{0:00}" -f [int]$matches[2]) + $matches[3]} -wh
Run Code Online (Sandbox Code Playgroud)

第二个示例使用别名来缩短命令(更容易键入). gci是别名Get-ChildItem,?是别名Where-Object,rni是别名Rename-Item.该-wh调用WhatIf功能,其中的PowerShell会告诉你它会做这样你就可以用命令玩弄,直到你满意的是什么,结果会是.然后删除-wh实际执行它.