2016-07-14 3 views
0

私は数百のファイルの名前を変更しています。これらはすべてアイテムIDとそれに続くテキストの束で変わります。たとえば...Powershellのファイル名を変更して "_"の後のすべてを削除します

BBAT300_abcdefg.xls BBAT400_abcdefg.xls

私は、アンダースコアからすべてを削除する必要があり、上のアンダースコアを含めて、その結果がこれです:

BBAT300.xls BBAT400 .XLS

私が見つかりました。以前のこのコードのビット...

Get-ChildItem -Name -Filter *.xls | foreach {[Regex]::Match($_,"^[^_]*").Value} 

、それはappea私はそれを実際にファイルの名前を変更することはできません。 Scriptingについての私の知識はほとんどないので、これは簡単な修正かもしれませんが、私はそれを見つけることができません。 Powershellはpowershellで結果を表示しますが、実際にはファイルの名前を変更しません。

答えて

0

名前を変更アイテムコマンドにだけ、パイプ、この行を次のことができます。

Get-ChildItem -Filter *.txt | Foreach-Object -Process { 
    $NewName = [Regex]::Match($_.Name,"^[^_]*").Value + '.txt' 
    $_ | Rename-Item -NewName $NewName 
} 

EDIT:それは働いていた任意の場所

+1

をサポートするように変更を!ありがとう! – Brian

関連する問題