你好,我在一个文件夹(Windows 10)中有一组文件,其名称如下:
asfdjlaksjfdi09908jfakl.part1.rar
aabdjkhihsdjkf.part2.rar
sdjklufia9798uiownlnsadkfasdFASDFrwe34342.part3.rar
... etc
第一个位之前的部分.
长度可变,并且基本上是胡言乱语。
我希望能够快速将第一个文件之前的所有内容更改.
为相同的名称,无论名称是什么,例如我希望上述文件名为:
file.part1.rar
file.part2.rar
file.part3.rar
... etc
我已看到一些用于查找和替换的 powershell 脚本,但我不知道如何进行查找和替换,直到第一个.
。
这有可能吗?通过谷歌搜索,我认为可以使用正则表达式来实现,但我一点头绪都没有。
到目前为止我已经尝试过:
因此我得到了以下适用于查找和替换的内容,但我不知道如何使用.
正则表达式将查找更改为适用于直到第一个为止的所有内容。
ls *.rar | Rename-Item -NewName {$_.name -replace "asfdjlaksjfdi09908jfakl","file"}
基本上我只需要改变asfdjlaksjfdi09908jfakl
为一个正则表达式,只替换直到第一个的所有内容.
有人能帮我编写一个快捷脚本吗?
谢谢!!!
答案1
这个 stackoverflow 答案提供您正在寻找的正则表达式。
现在,应用到您的具体情况:
Get-ChildItem `
-Filter "*.part*.rar" `
-File `
| Rename-Item `
-NewName { $_.Name -replace '^[^\.]*','file' }