# Zero padding file Numbers $dir = "c:\dev\data" $items = Get-ChildItem -Path $dir # create new file names & move foreach ($item in $items) { # if the item is a directory, then process it. if ($item.Attributes -ne "Directory") { # Write-Host $item.Name $fs1 = $item.Name.split(".") $fs2 = $fs1[0].split("-") $siz = $fs2[1] | Measure-Object -Character | select -expandproperty characters if ( $siz -gt $places) { $places = $siz # Write-Host "places is " $places } #$num = $fs2[1].toString("000") #Write-Host $num } } foreach ($item in $items) { # if the item is a directory, then process it. if ($item.Attributes -ne "Directory") { # Write-Host $item.Name $fs1 = $item.Name.split(".") $fs2 = $fs1[0].split("-") #$siz = $fs2[1] | Measure-Object -Character | select -expandproperty characters $fmt = '{0:D' + $places + '}' $newnum = $fmt -f $fs2[1] $newnum = $fs2[1].toString().PadLeft($siz+1, "0") $newnam = $fs2[0] + "-" + $newnum + "." + $fs1[1] # Write-Host $newnam $item | rename-item -NewName $newnam } }