txt ファイルのファイル拡張子の後のスペースを削除します

txt ファイルのファイル拡張子の後のスペースを削除します

拡張子はそのままにして、List.txt からファイル拡張子の後のすべてを削除する必要があります。

リンク内のコマンドを使用しようとしましたが失敗しました:
PowerShell を使用して行末のスペースを削除する方法
powershell-trim-文字列の後のすべての文字を削除する

リスト:

05 - Earth Wind and Fire - September (The Reflex Revision).mp3                                   -9,6
06 - Electric Light Orchestra - Last Train To London (Bootleg Extended Dance Remix).flac         -9,1
08 - Kool & The Gang - Get Down On It (Soul Funk House Remix).wav                               -10,7

必要なもの:

05 - Earth Wind and Fire - September (The Reflex Revision).mp3  
06 - Electric Light Orchestra - Last Train To London (Bootleg Extended Dance Remix).flac
08 - Kool & The Gang - Get Down On It (Soul Funk House Remix).wav

コマンドを試しましたが、成功しませんでした:

$content = Get-Content $files
$content | Foreach {$_.Substring(0, $_.IndexOf('.mp3', '.flac', '.wav' ))} | Set-Content $files

拡張子を保持したままファイル拡張子を削除するにはどうすればよいでしょうか?

答え1

サンプル データに基づくと、最も簡単な方法は、各文字列の最も一貫性のある部分、つまりファイル名に続く空白と数字を一致させることのようです。

  • <WhiteSpace><MinusSign><OneOrMoreDigits><Comma><OneOrMoreDigits>

を使って正規表現:

  • '\s+\-\d+,\d+$'

とともに-Replace演算子は、置換文字列が指定されていない場合は一致するテキストを単に削除します。

    { $_ -replace '\s+\-\d+,\d+$' }

マイナス記号がオプションの場合は、その後にOne or none (?)量指定子を続けます。

    $_ -replace '\s+\-?\d+,\d+$'

関連情報