2014-11-12 12 views
5

Ho circa 1500 file denominati con number.jpg. ad esempio, 45312.jpg o 342209.jpg o 7123.jpg o 9898923.jpg o 12345678.jpgAggiunta di zeri iniziali a un nome file utilizzando PowerShell

Il numero totale prima dell'estensione deve essere di 8 cifre. Quindi ho bisogno di aggiungere degli zeri iniziali se è inferiore a 8 cifre per fare il nome del file a 8 cifre.

000.jpg 
00.jpg 
0.jpg 
.jpg 

Ho provato questo script PowerShell ma si lamenta.

Ho provato questo, ma l'uscita è lo stesso

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

O

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

“{0: d4}” -f $ fn non fare il lavoro neanche. out put è uguale al nome del file. – user1497590

+0

Lei è una soluzione in C#: https://dotnetfiddle.net/S4vscU – abatishchev

risposta

4

Lei aveva ragione, ma il {0: D8} funziona solo su numeri, non stringhe, quindi è necessario lanciarlo correttamente

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

Eccellente. ha funzionato come un fascino. Grazie TMT – user1497590

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

O

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

Risultato

00092454.jpg 

PadLeft Method

Problemi correlati