use*_*889 2 powershell file-rename
我想写一个简短的PowerShell脚本来重命名文件,如:
abc(1), abc(2), .., abc(10), .., abc(123), ..
Run Code Online (Sandbox Code Playgroud)
至
abc(001), abc(002), .., abc(010), .., abc(123), ..
任何的想法?:)
试试这个:
Get-ChildItem abc* | Where {$_ -match 'abc\((\d+)\)'} |
Foreach {$num = [int]$matches[1]; Rename-Item $_ ("abc({0:000})" -f $num) -wh }
Run Code Online (Sandbox Code Playgroud)
管道的Where阶段正在做两件事.首先,只传递与指定模式匹配的文件名.其次,它使用捕获组来获取坐在其中的名称的数字部分$matches[1].
Foreach阶段将脚本应用于每个项目,由表示$_,传递到其中.它做的第一件事是获取旧文件名的"数字"部分.然后,它使用Rename-Item(PowerShell的重命名命令)从$ _表示的旧名称重命名为使用格式化字符串计算的新名称"abc({0:000})" -f $num.在这种情况下,格式化指令进入,{}其中0表示之后指定的值的位置-f.该:000是最多三个前导零的格式化指令显示号码.最后-wh,-WhatIf它指向可能具有破坏性的操作(如Rename-Item),以显示它在没有实际执行任何操作的情况下会执行的操作.一旦您满意该命令正常工作,删除-wh 并再次运行它.
| 归档时间: |
|
| 查看次数: |
1297 次 |
| 最近记录: |