我需要重命名一堆遵循以下约定的文件,来自:
姓氏_名字_公司_年月_合同类型.pdf
至:
姓_名_公司_年月日_Contractype.pdf
我添加的日期始终是该月的第一天,因此我需要添加的字符是:“-01”
非常感谢您的帮助!
我尝试选择文件并使用F2,虽然它添加了我想要的字符,但它也将每个文件重命名为相同,这不是我需要的。
我还发现了与我有相同需求的结果,但他们的文件有固定的字符长度,而我没有,根据名称、公司和合同,长度会有所不同。
在 PowerShell 中您可以执行以下操作:
$fileLocation = 'C:\path\to\documents'
# find all pdf files in the folder
Get-ChildItem -LiteralPath $fileLocation -Filter *.pdf |ForEach-Object {
# use the match operator to describe the filename and capture two groups:
# 1: `LastName_FirstName_Company_Year-Month`
# 2: `_Contractype`
if ($_.BaseName -match '^([^_]+_[^_]+_[^_]+_\d+-\d+)(_[^_]+)$') {
# rename file, insert `-01` between the two captured values
$_ |Rename-Item -NewName ($Matches[1,2] -join '-01')
}
}