使用PowerShell将前导零添加到文件名

use*_*590 8 powershell

我有大约1500个用number.jpg命名的文件.例如,45312.jpg或342209.jpg或7123.jpg或9898923.jpg或12345678.jpg

分机前的总数应为8位数.所以我需要添加前导零,如果它少于8位数,使8位数的文件名.

00001234.jpg
00012345.jpg
00123456.jpg
01234567.jpg
Run Code Online (Sandbox Code Playgroud)

我试过这个powershell脚本,但它抱怨.

我试过这个,但输出是一样的

$fn = "92454.jpg"
"{0:00000000.jpg}" -f $fn
Run Code Online (Sandbox Code Playgroud)

要么

$fn = "12345.jpg"
$fn.ToString("00000000.jpg")
Run Code Online (Sandbox Code Playgroud)

小智 11

'92454.jpg' | % PadLeft 12 '0'
Run Code Online (Sandbox Code Playgroud)

要么

'92454.jpg'.PadLeft(12, '0')
Run Code Online (Sandbox Code Playgroud)

结果

00092454.jpg
Run Code Online (Sandbox Code Playgroud)

PadLeft方法


The*_*ian 6

没错,但是{0:d8}仅适用于数字,不适用于字符串,因此您需要正确地进行强制转换。

Get-ChildItem C:\Path\To\Files | Where{$_.basename -match "^\d+$"} | ForEach{$NewName = "{0:d8}$($_.extension)" -f [int]$_.basename;rename-item $_.fullname $newname}
Run Code Online (Sandbox Code Playgroud)