重命名子目录中具有相同名称和扩展名(通常是.pdf)的文件,编号递增

我的文件夹结构是这样的:

资料夹1

  • 文件1.pdf
  • 文件2.pdf
  • 文件3.pdf

资料夹2

  • 文件1.pdf --->将其重命名为“文件1-1.pdf”
  • 文件2.pdf --->将其重命名为“文件2-1.pdf”
  • 文件5.pdf

子文件夹2.1

  • 文件2.pdf --->将其重命名为“文件2-2.pdf”
  • 文件4.pdf
  • 文件5.pdf --->将其重命名为“文件5-1.pdf”

资料夹3

  • 文件1.pdf --->将其重命名为“文件1-2.pdf”
  • 文件2.pdf --->将其重命名为“文件2-3.pdf”
  • 文件4.pdf --->将其重命名为“文件4-1.pdf”
  • 文件6.pdf
  • 文件7.pdf

这是我正在尝试的方法,但肯定是错误的。我正在使用Powershell 2.0版。

$i = 1 
$folder = Get-ChildItem "C:\Users\xyz\testfolder\pdf_files\"
foreach ($file in $folder){
    if (($file.BaseName + $file.extension) -match ($file.BaseName + 
    $file.extension)){
    Rename-Item -Path $file.FullName -NewName "$($file.BaseName + 
    $i)$($file.extension)" -Verbose -WhatIf
    $i++ 
   }
 }

我刚刚通过一个非常友好的人找到了我问题的答案。无论如何..这是对我有用的PS脚本。

$Files = Get-ChildItem -LiteralPath 'C:\Foo\Bar\Files\' -Recurse | Where- 
Object { -not $_.PSIsContainer }
$FileNameCounts = @{}

ForEach ($File In $Files) {
  $BaseName = $File.BaseName

If ($FileNameCounts.Keys -contains $BaseName) {
    $NewName = '{0}-{1}{2}' -f $BaseName, $FileNameCounts[$BaseName], 
    $File.Extension
    $File | Rename-Item -NewName $NewName -WhatIf
    $FileNameCounts[$BaseName]++
  } Else {
    $FileNameCounts[$BaseName] = 1
 }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

重命名子目录中与文件夹名称相同的文件

重命名子目录中的所有文件

重命名子目录中的所有文件

bash重命名文件/在文件名中添加整数,在多个子目录中具有各种扩展名

重命名具有相同扩展名和任何名称的所有文件

重命名子目录文件,使其具有特定范围的父文件夹名称

从文档目录中获取包含相同名称但具有不同扩展名的文件列表。

对于目录,将具有子目录名称+旧文件名的子目录中的文件重命名为新目录

遍历子目录,并将给定扩展名的所有文件重命名为相同的文件名

如何从特定给定的目录和所有子目录中搜索具有特定扩展名的文件

用递增编号重命名文件

将具有特定扩展名的文件从目录移动到 PHP 中的子目录

python重命名子目录中的所有文件

删除不同子目录中具有相同名称的文件夹的内容

使用父目录名称重命名多个不同名称和扩展名的文件

将子目录中的pdf文件重命名为子目录的名称

重命名多个子目录中的同名文件

如何在vbscript中重命名具有相同扩展名的不同命名文件

如何将文件复制到编号为 (0001,0002,0003) 的父目录中具有相同名称 (pic) 的子目录

将所有具有相同名称的文件从子目录移动到一个目录中

如何使用find重命名具有相同名称的不同目录中的文件

VS代码:对具有相同名称和不同扩展名的文件进行分组

查找和复制具有相同名称但扩展名不同的文件

如何在脚本python3中递归重命名子目录和文件名?

bash-重命名子目录中的fasta标头和文件名-追加前缀

批量重命名具有未知名称和扩展名的文件

如何合并所有子目录中具有相同名称的文本文件?

使用 Powershell 重命名当前目录中包含文件和子目录的所有文件夹名称

从所有子目录复制具有特定扩展名的所有文件