刪除txt檔案中檔案副檔名後面的空格

刪除txt檔案中檔案副檔名後面的空格

我需要從 List.txt 中刪除檔案副檔名後面的所有內容,並保留副檔名。

我嘗試使用連結中的命令但未成功:
如何使用 powershell 刪除行尾空格
powershell-修剪-刪除字串後的所有字符

列表:

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+$'

相關內容