使用regex重命名powershell中的.pdf文件



我的工资单以pdf文件的形式从工作中下载到我的笔记本电脑上,名称为

付款单04_06_2019-08_06_2019

,日期为ddmmyyyy格式

我正在尝试重命名它们以更好地排序

工资单20190604-20190608

我正在尝试拼凑一些零碎的东西,并发现使用regex,如果我以文本形式输入文件名,我可以将其转换为我想要的格式。其代码低于

'PaySlip 04_06_2019 - 08_06_2019.pdf' -replace 
'.+(d{2})_(d{2})_(d{4}) - (d{2})_(d{2})_(d{4}).pdf', 
'Payslip$3$2$1-$6$5$4'

但找不到将其与getchilditem和rename项一起使用以实际重命名文件的方法。我尝试过以各种不同的试错方式将上面的代码添加到gci中,但都没有成功。

有人知道我哪里出了问题吗?或者我需要以什么方式使用我键入的代码来功能性地重命名文件?

感谢

解决方案:

Get-ChildItem *.pdf | 
Rename-Item -NewName { $_.name -replace 
'.+(d{2})_(d{2})_(d{4}) - (d{2})_(d{2})_(d{4}).pdf', 
'Payslip$3$2$1-$6$5$4.pdf' }

解决方案:

Get-ChildItem *.pdf | 
Rename-Item -NewName { $_.name -replace 
'.+(d{2})_(d{2})_(d{4}) - (d{2})_(d{2})_(d{4}).pdf', 
'Payslip$3$2$1-$6$5$4.pdf' }

我希望这就是你想要的:

#$path = "Path to your DPFs Folder"
$path = "c:MyPDFs"
$AllPDFs = Get-ChildItem $path
foreach($pdf in $AllPDFs)
{
cd $path
$Newpdf = $pdf -replace '[s+*_]',''
Rename-Item $pdf -NewName $Newpdf
}

工资单04_06/2019-08_06/2019

工资单04062019-08062019

谨致问候。

最新更新