在所有子文件夹中查找文件,然后重命名all以增加文件编号

时间:2015-01-24 00:09:23

标签: powershell

虽然我无法让它发挥作用,但这似乎是一件容易的事。得到了一堆jpgs,全部命名为" 1.jpg",存储在大约700个子文件夹中。我的错误在哪里? 我的代码:

$int = 1
Get-ChildItem -Filter "*'1'*" -Recurse | Rename-Item -NewName {$_.name -replace '1', $int++ }

谢谢!

1 个答案:

答案 0 :(得分:1)

这样的事情:

$int = 2
Get-ChildItem -Filter 1.jpg -Recurse | 
    Rename-Item -NewName {$_.name -replace '1', $int++}

关于$int = 2。你需要开始一个更高的数字,因为你可以尝试将1.jpg重命名为1.jpg。在$int++的替换中使用后,-replace会增加的数量。

必须找到备份文档,但是当子表达式{}工作正常时,部分问题可能一直在使用脚本块()

此外,既然您知道文件名,我认为过滤器应该只是"1.jpg",这样您就不会得到其他您不想要的文件。

关于-Path Get-ChildItem

您根本不需要 来指定它,因为它将使用当前位置作为路径。使用路径是一种很好的做法,这样您就不会意外地针对您不想要的路径运行代码。案例和点是你搜索数字1可以轻松匹配不是1.jpg的文件。重命名所有这些可能是灾难性的(不是真的,但它可能会发生。)