我需要从我的 List.txt 中删除文件扩展名之后的所有内容,保留扩展名。
我尝试使用链接中的命令失败:
how-to-use-powershell-to-remove-space-from-the-end-of-a-line
powershell-trim-remove-all-characters-after-a-细绳
列表:
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
文件扩展名后如何删除,保留扩展名?
根据您的示例数据,看起来最简单的方法是匹配每个字符串中最一致的部分、文件名后面的空格和数字:
<WhiteSpace><MinusSign><OneOrMoreDigits><Comma><OneOrMoreDigits>
使用正则表达式:
'\s+\-\d+,\d+$'
使用
-Replace
运算符,如果没有指定替换字符串,它将简单地删除匹配的文本:如果减号是可选的,请在其后面加上
One or none (?)
量词: