2014-11-12 32 views
5

kullanarak bir dosya adına baştaki sıfırları ekleme number.jpg ile adında yaklaşık 1500 dosya var. Örneğin, 45312.jpg veya 342209.jpg ya da 7123.jpg ya da 9845678.jpg ya da 12345678.jpgPowerShell

Uzantıdan önceki toplam sayı 8 basamak olmalıdır. Bu yüzden 8 basamaklı bir dosya adı oluşturmak için 8 basamaktan daha azsa sıfırlar eklemem gerekiyor.

000.jpg 
00.jpg 
0.jpg 
.jpg 

Bu powershell komut dosyasını denedim ancak şikayet ediyor.

Bu çalıştı ancak çıkış Bunu doğru vardı

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

VEYA

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

“{0: d4}” -f $ fn olarak bir iş yapmaz. dışarı koymak dosya adıyla aynıdır. – user1497590

+0

C# içindeki bir çözüm: https://dotnetfiddle.net/S4vscU – abatishchev

cevap

4

aynıdır, ancak: Gerekirse böylece {0 d8} sadece sayılar değil dizeleri çalışır doğru şekilde yayınlayın.

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

Mükemmel. cazibe gibi çalıştı. Teşekkürler tmt – user1497590

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

Ya

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

Sonucu

00092454.jpg 

PadLeft Method