
複数のカメラで撮影した 14,000 枚の写真が年と月ごとにファイルに分類されています。ファイル名に写真を撮影した日付を反映させたいです。
たとえば、1998 年 10 月 16 日に撮影されたすべての写真は、 というフォルダーに保存されます1998\10 October\19981016
。
すべての写真に 19981016_0001 19981016_0002 などの名前を付けます。
変更したいフォルダをリストすることはできますが、実際に変更することはできません。写真はすべて .jpg です。
失敗した場合に備えて、コピーの一時ファイルを作成しました。まず、次のように入力しました。
cd "C:\Documents and Settings\Brooke LastName\Desktop\Temp"
ファイルを正常に読み込んだ後、このフォーラムで見つけた数式を使用しました。
ls *jpg | Foreach {$i=1} {Rename-Item _ -NewName ("$($.19981016){0:00000000#} .jpg" -f $i++) -whatif}
私が受け取ったエラーは
Unexpected token ' .19981016' in expression or statement.
At line:1 char:12 + $.19981016 <<<<
エラーが何度も繰り返される
ウェブ上でいくつかの数式を見つけましたが、ほとんどは括弧付きの番号のファイルを作成しました。たとえば、vacation (1).jpg 日付の末尾にアンダースコアを付けて、4 桁のカウンターを表示したいです。例: 19981016_0001
答え1
数式を変更し、少なくとも 2 つの間違いを犯したと思います。
Rename-Item $_
-> そうでない場合、PowerShell は "_" という名前のファイルの名前を変更しようとします。"$($_.Directory.Name)_{0:D9}.jpg" -f $i++
- 現在のオブジェクトのディレクトリ名を取得する必要があります。フォーマットするには、D# 形式を使用する方が簡単で、最終的に取得する桁数を数えるのが簡単です...