2016-03-22 25 views

cevap

1

Böyle bir alt dizeyle birlikte kullanabilir:

$a = "0001 filename.txt" 
Rename-Item -Path $a -NewName $("$($a.Substring(0,4)).txt") 
+0

Bu çözüm, gereksinimlerimi daha iyi karşılar. Teşekkür ederim. – Rayearth

0

her zaman örnek, Rakamlar ve Non gibi aynı kuralı kullanıyorsanız

kullanabilirsiniz rakamdan oluşan:

$Filename = Get-ChildItem 'C:\folder\0001 filename.txt' 
Rename-Item $Filename -NewName ($Filename.Name -replace "\W+\w+[^.txt]") 

kongre farklı ise farklı bir düzenli ifade oluşturmak için gereken

0

Buraya benim de gireceğim. Boşluklarda (veya parantez içindeki herhangi bir karakter) bir dizgeyi kırmak için .Split() yöntemini kullanabilirsiniz. Böl ve sonra istediğimiz değerlere indeks.

$a = "0001 filename.txt" 
$a.Split()[1] 
>filename.txt 

Dosyanızı yeniden adlandırmak için bunu yapmak istesek, böyle görünecektir.

Rename-Item $Filename -NewName $a.Split()[1] 
0

Dosyanızın yolunu kullanarak "E: \ 0000 File1.txt" dosyasını değiştirin. Yapacağım bir sürü dosyanız olduğunu varsayalım, burada birkaç dosya için format var.

$File = "E:\File1.txt","E:\File2.txt","E:\File3.txt" 

Bu, tam bir koddur. Ayrıca, bir dosya ile dolu bir dizin de verebilir, ancak bu dizinin alt klasörleri varsa, bunlar tarafından yeniden adlandırılabilir. İlk iki satırı sadece beğeninize göre değiştirmelisiniz.

$File = "E:\0000 File1.txt","E:\0000 File2.txt" 
$CharsToKeep = 7 

Get-ChildItem $File | 
ForEach-Object{ 
    $Orig = $_.fullname 
    $NewName = ($_.BaseName).Substring(0,$CharsToKeep) + $_.Extension 
    Rename-Item -path $Orig -NewName $NewName 
} # end Foreach. Also end Get-ChildItem