虽然我无法让它发挥作用,但这似乎是一件容易的事。得到了一堆jpgs,全部命名为" 1.jpg",存储在大约700个子文件夹中。我的错误在哪里? 我的代码:
$int = 1
Get-ChildItem -Filter "*'1'*" -Recurse | Rename-Item -NewName {$_.name -replace '1', $int++ }
谢谢!
答案 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的文件。重命名所有这些可能是灾难性的(不是真的,但它可能会发生。)