我有几百个文件,我想重命名
所有文件名的开头都有随机字符串,但都有一个常量(在本例中为单词“File”)
那我该怎么从这个
huhukifauduigui9983hodhohhh File 01 [145dde].ext
ljdwidnjncjbbbjbk File 55 [wniw].ext
wdwjbnkjbkjbiuiuiubi File 24 [wdwxxx].ext
plxwjijiwi File 14 [wddbb].ext
到这个
File 01 [145dde].ext
File 55 [wniw].ext
File 24 [wdwxxx].ext
File 14 [wddbb].ext
先谢谢你了
我唯一能想到的是一个PowerShell命令,但只真正知道如何替换特定的字符串
1条答案
按热度按时间nnsrf1az1#
使用
-replace
,PowerShell基于regex的字符串替换运算符:注意:上面命令中的
-WhatIf
公共参数 * 预览 * 操作。删除-WhatIf
,并在确定操作将按您的要求执行后重新执行。正则表达式
^.*\b(?=File)
匹配文件名(^
)的 * 开始 * 处的任何(*
)个字符(.
)(可能没有),但不包括(由于使用了先行Assert(?=…)
)单词File
,它必须出现在单词边界(\b
)处。有关正则表达式的更详细解释和使用它的能力,请参阅this regex101.com page。
由于没有给出替换操作数,因此隐含了 * 空字符串 *,从而有效地删除了匹配部分。
请注意,如果给定文件的名称与模式不匹配,则其名称将保持原样。
还要注意使用带有
Rename-Item
的-NewName
参数的延迟绑定脚本块,以便根据Get-ChildItem
发出的每个文件信息对象 * 动态地 * 确定新文件名