2014-11-12 15 views
5

Mam około 1500 plików o nazwie z number.jpg. na przykład 45312.jpg lub 342209.jpg lub 7123.jpg lub 9898923.jpg lub 12345678.jpgDodawanie początkowych zer do nazwy pliku przy użyciu PowerShell

Całkowita liczba przed rozszerzeniem powinna wynosić 8 cyfr. Muszę więc dodać zera wiodące, jeśli jest to mniej niż 8 cyfr, aby utworzyć nazwę pliku składającą się z 8 cyfr.

000.jpg 
00.jpg 
0.jpg 
.jpg 

Próbowałem tego skryptu powłoki, ale narzeka.

próbowałem tego, ale wynik jest taki sam

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

LUB

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

„{0: d4}” -f $ fn nie wykonać zadanie albo. out put jest taki sam jak nazwa pliku. – user1497590

+0

Jest to rozwiązanie w języku C#: https://dotnetfiddle.net/S4vscU – abatishchev

Odpowiedz

4

Miałeś rację, ale {0: d8} działa tylko na liczbach, a nie strun, więc trzeba rzuć poprawnie.

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

Doskonałe. pracował jak urok. Dzięki TMT – user1497590

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

Albo

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

Wynik

00092454.jpg 

PadLeft Method

Powiązane problemy