我试图递归地扫描一个目录,并将目录中的所有.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
这些文件都是从数码相机中导入的,因为这些文件都有垃圾名--我基本上想要一种将它们导入到程序中并使文件保持相同顺序的方法。
发布于 2017-11-14 14:33:28
正如错误消息所述,关闭}
缺少一个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
}
https://stackoverflow.com/questions/47288226
复制相似问题