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

时间:2014-11-12 00:38:29

标签: 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

我试过这个powershell脚本,但是它在抱怨。

我尝试了这个,但输出相同

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

OR

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

2 个答案:

答案 0 :(得分:10)

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

或者

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

结果

00092454.jpg

PadLeft Method

答案 1 :(得分:5)

你没错,但是{0:d8}只适用于数字,而不是字符串,所以你需要正确地投射它。

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