2017-11-14 26 views
0

私は再帰的にディレクトリをスキャンし、数値の命名規則にdirsに(とサブのdirs)内のすべての.jpg and .jpegファイルの名前を変更しようとしています。再帰的に検索するのdirs&SUBDIRS数値的に名前の変更ファイル

私はしかしこの構文

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++)} 

をしている - これは、私はこれは私が一望できています私の最後の世俗的なものであると確信している私に

Missing closing '}' in statement block or type definition.
+ CategoryInfo : ParserError: (:) [],
ParentContainsErrorRecordException
+ FullyQualifiedErrorId : MissingEndCurlyBrace

のエラーを与える - しかし、何がだろうすべてのファイルの名前を数値的に変更するための適切な構文?私は1.jpeg

にファイルを名前を変更したい

EDIT
現在のファイル名がP1870426.jpegでは、デジタルカメラからのすべてのインポートされ、ファイルがゴミの名前を持っているので - 私は基本的にインポートする方法を希望していますそれらをプログラムに入れ、ファイルを同じ順序で残しておきます。

答えて

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 
} 
+0

良いキャッチ。私はもう一つの問題に気付きます。 .jpgまたは.jpegをWHEREに指定していますが、MyFileには.txtを指定しています - これを変更して.jpgまたは.jpegを指定するにはどうすればよいですか? – IcyPopTarts

+0

私はあなたの最後のコメント – Manu

+0

これは、名前の変更、項目のエラーを提示についての答えを編集した:「P1870445.jpeg」でのアイテムが存在しないため、名前を変更できません。ラインで :2チャー:5 +名前の変更項目$ _ -NewName( "MyFileの{0} $($ _拡張)。" -f $ NR ++) + ~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:はInvalidOperation:(:) [名前の変更-項目]、PSInvalidOperationException + FullyQualifiedErrorId:はInvalidOperation、Microsoft.PowerShell.Commands.RenameItemCommand ---しかし、ファイルが存在しませんか/? – IcyPopTarts

関連する問題