我很难编写一个Powershell命令来完成以下操作。假设有一个文件夹,其中有许多文件具有与正则表达式模式匹配的随机名称。我想捕获与该模式匹配的部分,并仅将文件重命名为该部分。
例如,如果模式是\w\d+\w+\d+(或类似),"asdjlk-c12aa13-.pdf"应更改为"c12aa13.pdf"。
我的当前想法大致如下:
Get-ChildItem | Rename-Item -NewName { $_.Name -match $pattern ... } -WhatIf
其中...需要替换为设置代码块(即NewName)的“值”的内容。也就是说,我不知道如何在-match命令之后直接访问$matched。
此外,我想知道是否可能使用-match进行懒惰匹配,.*?似乎行不通。
例如,如果模式是\w\d+\w+\d+(或类似),"asdjlk-c12aa13-.pdf"应更改为"c12aa13.pdf"。
我的当前想法大致如下:
Get-ChildItem | Rename-Item -NewName { $_.Name -match $pattern ... } -WhatIf
其中...需要替换为设置代码块(即NewName)的“值”的内容。也就是说,我不知道如何在-match命令之后直接访问$matched。
此外,我想知道是否可能使用-match进行懒惰匹配,.*?似乎行不通。
示例
- The fourth bird