0

我想重命名一堆包含可以在文件名中重复的模式的文件。Pattern 从第一个“点+空格”开始删除它的所有内容。例如:“wxxdv xcvxcv.sdfsdf.sd.txt”变为“sdfsdf.sd.txt”(删除以 终止的“wxxdv xcvxcv.”的第一次出现"dot + space" = ". ")例如:“rond M., Bilou. arrival 1901.txt”应该变为“ arrival 1901.txt”(去掉“rond M., Bilou.”)

我发现以下命令应该离我的目标不太远(但不起作用):

dir *.txt | mi -dest {($_.Basename -replace '^[A-z]+\.\s','').Trim() + $_.Extension}

额外的问题,有没有办法在不执行重命名的情况下看到结果(结果的一种预览)

谢谢,这是我第一次尝试使用powershell

4

2 回答 2

1
$t="rond M., Bilou. arrival 1901.txt"
$formatedText=$t.Substring(([regex]::split($t, '\.\s')[0]).Length+2)
write-host $formatedText

arrival 1901.txt
于 2013-06-21T07:59:51.890 回答
1

我的奖金问题的答案

有什么方法可以在不执行重命名的情况下查看结果

是使用 Move-Item 命令 (mi) 的“-WhatIf”开关,因此命令为:

dir *.pdf | mi -WhatIf -dest {($_.Basename.Substring(([regex]::split($_.basename, '\.\s')[0]).Length+2)) + $_.Extension}
于 2013-07-03T03:54:17.103 回答