powershell スクリプトを使用して、ファイル名からいくつかの特殊文字を削除する方法を探しています。
ファイル名は次のようになります。
[レポート]_first_day_of_month_01_(generated_by_powershell)_[repnbr1].txt
[] とそれらの間のすべて、() とそれらの間のすべてを削除し、_ もすべて削除することに戸惑いました。望ましい結果は次のようなファイル名です。
月の最初の日 01.txt
これまでのところ、以下の解決策を試してみましたが、役に立ちませんでした。ファイルが存在するディレクトリからこれらをそれぞれ実行しました。
Get-ChildItem -Path .\ -Filter *.mkv | %{
$Name = $_.Name
$NewName = $Name -Replace "(\s*)\(.*\)",''
$NewName2 = $NewName -Replace "[\s*]\[.*\]",''
$NewName3 = $NewName2 -Replace "_",' '
Rename-Item -Path $_ -NewName $NewName3
}
このように一度に1セットずつやってもうまくいかないので:
Get-ChildItem -Path .\ -Filter *.mkv | %{
$Name = $_.Name
$NewName = $Name -Replace "(\s*)\(.*\)",''
Rename-Item -Path $_ -NewName $NewName
}
このタスクを達成しようとしている方法には、固有の欠陥があると思います。そうは言っても、move-item ソリューションを使用するよりも、Rename-Item コマンドレットを使用することをお勧めします。