Dateinamen in der Shell voranstellen

Dateinamen in der Shell voranstellen

Ich habe 100 PNG-Dateien in einem Ordner, beispielsweise test.png, example.png usw.

Ich möchte ihnen eins voranstellen, sodass sie in usw. New_umbenannt werden New_test.png.New_example.png

Wie kann ich das in der Shell machen?

Antwort1

Sie haben kein Betriebssystem angegeben. Diese Antwort setzt Windows voraus.

Mein erster Gedanke war ein einfacher Befehl wie

for %f in (*.png) do rename "%f" "New_%f"

Aber eine Datei mit dem Namen a.pngwurde zuerst umbenannt in New_a.pngund in der alphabetischen Reihenfolge nach unten verschoben :-( Die Schleife hat diese Datei umbenannt inzweiteZeit zu New_New_a.png.

Dies muss daher in zwei Schritten erfolgen:

dir /b *.png > png.txt
for /F %l in (png.txt) do rename "%l" "New_%l"
del png.txt

Die erste Zeile erstellt eine Textdatei, die die Namen aller PNG-Dateien im aktuellen Verzeichnis enthält. Die zweite Zeile analysiert jede Zeile der Datei und benennt die PNGs um.

verwandte Informationen