我试图以递归方式扫描目录,并将dirs(和sub dirs)中的所有.jpg and .jpeg
文件重命名为数字命名约定。
我有这个语法
get-childitem -Recurse -path C:\Users\jsimpson\Desktop\Test123 | where {($_.extension -eq '.jpg') -or ($_.extension -eq '.jpeg') | %{Rename-Item $_ -NewName (‘MyFile{0}.txt’ -f $nr++)}
但是 - 这给了我一个错误
在语句块或类型定义中缺少关闭'}' + CategoryInfo:ParserError:(:) [],
ParentContainsErrorRecordException
+ FullyQualifiedErrorId:MissingEndCurlyBrace
我确信这是我可以忽视的一些平凡的东西 - 但是在数字上重命名所有文件的正确语法是什么?
修改
当前文件名为P1870426.jpeg
我想将其重命名为1.jpeg
这些文件都是从数码相机导入的,因为这些文件都有垃圾名称 - 我基本上想要一种方法将它们导入程序并使文件保持相同的顺序。
答案 0 :(得分:1)
正如错误消息所示,}
缺少关闭Where
:
Get-ChildItem -Recurse -Path 'C:\Users\jsimpson\Desktop\Test123' | Where-Object {$_.Extension -match 'jpg|jpeg'} | ForEach-Object {
$newFile = "{0}$($_.Extension)" -f $nr++
Rename-Item $_.FullName -NewName $newFile -Force
}