首页 > 解决方案 > 重命名文件夹中的特定文件:仅更改第一个数字

问题描述

在文件夹中,我有不同类型的文件。我需要更改特定类型文件的编号。其中一些看起来像:01 sasasasa;02 dadadad 等。我需要在前两位数上加 5。例:06 筱筱;07 dadadad... 但是在其他文件夹中重命名的项目看起来像 1 bububu ; 2 mumumu 等。需要加 5 并在第一位加一个 0。例如:06 布布布;07 mumumu ...当我达到 10+ 时,它不能是:010。

尝试了这种简单的方法:

Get-ChildItem -Path E:\bongbong -Filter *.txt |
%{
Rename-Item -NewName { $_.Name -replace '01','06' } |
Rename-Item -NewName { $_.Name -replace '02','07' } |
Rename-Item -NewName { $_.Name -replace '03','08' } |
Rename-Item -NewName { $_.Name -replace '04','09' } |
Rename-Item -NewName { $_.Name -replace '05','10' }
}

它不适用于第一个示例。在 powershell 中找不到类似 -if 的东西。

标签: powershellrename

解决方案


您可以尝试更动态的方法:

(Get-ChildItem -Path 'E:\bongbong' -Filter '*.txt' -File) | 
    Where-Object { $_.Name -match '^(\d{1,2})(.*)' } |
    Rename-Item -NewName {'{0:D2}{1}' -f ([int]$Matches[1] + 5), $Matches[2]}

推荐阅读