我有大量的文件(.mp3),我正试图找到重复的文件。
我现在遇到的问题是文件名如下所示:
number
我需要做的是:
Singer - Song
_1_Singer_-_Song_
001-Singer-Song
然后(希望)上面的文件名应如下所示:
If the name starts with a number (123456789) or a symbol (?=/&%¤#"!_.-).
Then delete all numbers/symbols until there is an alphabetic character.
这是我到目前为止所做的,但我只需要替换名称的第一个字符。它们可以在0-10个字符之间变化,因此我需要检查每个文件中需要替换的字符数。
Singer - Song
Singer_-_Song_
Singer-Song
由于
答案 0 :(得分:0)
通过一些正则表达式可以更容易。替换所有非字母的前导字符
$name | Rename-Item -NewName {$name.Name -replace "^[^a-z]*"}
^
在行的开头断言位置 [^a-z]*
匹配下面列表中不存在的单个字符
量词:*
在零和无限次之间,尽可能多次,根据需要回馈[贪婪]
a-z
a和z之间范围内的单个字符。 -replace
默认情况下不区分大小写。
正则表达式不是唯一的答案。看来你有一个定义的字符列表,一开始就不应该存在。字符串方法.TrimStart()
也可以。
$name | Rename-Item -NewName {($name.Name).TrimStart("0123456789?=/&%¤#`"!_.-")}
我添加了0以便它适合您的测试用例。