【问题标题】:Powershell: batch rename files, add counter in front (with leading 0)Powershell:批量重命名文件,在前面添加计数器(带前导0)
【发布时间】:2020-02-06 11:28:16
【问题描述】:

我正在尝试(和其他许多人一样)通过在文件名前面添加一个带有前导零的计数器来批量重命名文件夹中的文件。

这是我所拥有的:

b.txt
c.txt
... zzz.txt

这就是我想要的:

001_b.txt
002_c.txt
... 893_zzz.txt

到目前为止我的代码:

$originalFiles = Get-ChildItem "C:\Users\abc\" -Filter *.txt
$i = 1

ForEach ($originalFile in $originalFiles) {
    Rename-Item -Path $originalFile.FullName -NewName (($originalFile.Directory.FullName) + "\" + $i + $originalFile.Name)
    $i++
}

我缺少数字和文件名之间的下划线。而且我缺少前导零。

欢迎提出任何建议。 抱歉这个基本问题,这是我的第一次 PowerShell 体验。

【问题讨论】:

    标签: powershell-ise


    【解决方案1】:

    这应该可以解决问题:

    $MyPath = "C:\Users\abc\"
    $i=1
    Get-ChildItem -Path $MyPath -Filter "*.txt" | Sort-Object | ForEach-Object {
        Rename-Item -Path $_.FullName -NewName (Join-Path -Path $_.Directory.FullName -ChildPath "$('{0:d3}' -f $i)_$($_.Name)")
        $i++
    }
    

    请记住,如果您有 1000 个或更多文件,则需要 3 位以上的数字

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-07
      • 2021-01-19
      • 2021-05-10
      • 2013-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-26
      相关资源
      最近更新 更多