使用PowerShell向文件名添加前导零

plupiseo  于 2023-04-06  发布在  Shell
关注(0)|答案(2)|浏览(189)

我有大约1500个文件的名称为. jpg。例如,45312.jpg342209.jpg7123.jpg9898923.jpg 或12345678.jpg
在扩展名之前的总数字应该是8位数。所以我需要添加前导零,如果它小于8位数,使一个8位数的文件名。

00001234.jpg
00012345.jpg
00123456.jpg
01234567.jpg

我尝试了这个PowerShell脚本,但它在抱怨。
我试过这个,但是输出是一样的

$fn = "92454.jpg"
"{0:00000000.jpg}" -f $fn

$fn = "12345.jpg"
$fn.ToString("00000000.jpg")
t9aqgxwy

t9aqgxwy1#

'92454.jpg' | % PadLeft 12 '0'

或者

'92454.jpg'.PadLeft(12, '0')

结果

00092454.jpg

PadLeft Method

czfnxgou

czfnxgou2#

你做对了,但是{0:d8}只对数字有效,而不是字符串,所以你需要正确地转换它。

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

相关问题