我正在寻找一种通过 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
}
因为即使我尝试像这样一次做一组它也不起作用:
Get-ChildItem -Path .\ -Filter *.mkv | %{
$Name = $_.Name
$NewName = $Name -Replace "(\s*)\(.*\)",''
Rename-Item -Path $_ -NewName $NewName
}
我认为我试图完成这项任务的方式存在固有缺陷。话虽如此,我更喜欢使用 Rename-Item cmdlet 而不是使用移动项解决方案。