【问题标题】:Rename .pdf files in powershell using regex使用正则表达式在powershell中重命名.pdf文件
【发布时间】:2020-08-03 18:13:51
【问题描述】:

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

工资单 04_06_2019 - 08_06_2019

日期为 ddmmyyyy 格式

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

PaySlip20190604-20190608

我正在尝试拼凑零碎,并发现使用正则表达式可以将文件名转换为我想要的格式,如果我将其作为文本输入。代码如下

'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'

但无法找到一种方法将它与 get-childitem 和 rename-item 一起使用来实际重命名文件。我尝试以各种不同的试错方式将上述代码添加到 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' }

【问题讨论】:

标签: regex windows powershell rename


【解决方案1】:

我希望这就是你想要的:

#$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

PaySlip04062019-08062019

最好的问候。

【讨论】:

    【解决方案2】:

    解决方案:

    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' }
    

    【讨论】:

      猜你喜欢
      • 2020-08-13
      • 2011-09-14
      • 2017-08-10
      • 1970-01-01
      • 2012-08-02
      • 2018-11-12
      • 2018-08-22
      相关资源
      最近更新 更多