
Ich habe 14.000 Bilder, die mit mehreren Kameras aufgenommen wurden und nach Jahr und Monat in Dateien sortiert sind. Ich möchte, dass der Dateiname das Aufnahmedatum des Fotos widerspiegelt.
Beispielsweise befinden sich alle am 16. Oktober 1998 aufgenommenen Bilder in einem Ordner namens 1998\10 October\19981016
.
Ich möchte, dass alle Bilder 19981016_0001, 19981016_0002 usw. heißen.
Ich komme bis zu dem Punkt, an dem der Ordner aufgelistet wird, den ich ändern möchte, aber ich kann ihn nicht wirklich ändern. Alle meine Bilder sind .jpg.
Ich habe eine temporäre Datei mit Kopien erstellt, falls ich es vermasseln sollte. Ich begann mit der Eingabe von:
cd "C:\Documents and Settings\Brooke LastName\Desktop\Temp"
Nachdem ich meine Datei erfolgreich geladen hatte, habe ich eine Formel verwendet, die ich in diesem Forum gefunden habe.
ls *jpg | Foreach {$i=1} {Rename-Item _ -NewName ("$($.19981016){0:00000000#} .jpg" -f $i++) -whatif}
Der Fehler, den ich bekam, sagte
Unexpected token ' .19981016' in expression or statement.
At line:1 char:12 + $.19981016 <<<<
Der Fehler wiederholte sich mehrmals
Ich habe im Internet mehrere Formeln gefunden, aber die meisten erstellten Dateien würden Nummern mit Klammern enthalten, z. B. „Urlaub (1).jpg“. Ich möchte einen vierstelligen Zähler nach einem Unterstrich am Ende meines Datums, z. B. 19981016_0001
Antwort1
Ich denke, Sie haben die Formel geändert und mindestens zwei Fehler gemacht:
Rename-Item $_
-> andernfalls versucht PowerShell, die Datei mit dem Namen "_" umzubenennen"$($_.Directory.Name)_{0:D9}.jpg" -f $i++
– Sie müssen den Verzeichnisnamen des aktuellen Objekts erfassen und zum Formatieren – es ist einfacher, das D#-Format zu verwenden, da es einfacher ist, zu zählen, wie viele Ziffern Sie am Ende erhalten …