如何在 powershell 上实现正则表达式查找和替换以在 windows 10 中快速更改文件名?

如何在 powershell 上实现正则表达式查找和替换以在 windows 10 中快速更改文件名?

你好,我在一个文件夹(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' }

相关内容