Wie Sie batch-umbenennen von Dateien in einem Verzeichnis aus einer Liste von Namen in einer text Datei

Ich würde gerne mit Power Shell oder batch Datei zum umbenennen von mehreren Dateien in einem Ordner mit einer Liste in eine text-Datei. Im wesentlichen möchte ich anfügen, die Datei-Namen mit des Autors Nachnamen (was ich gespeichert habe in eine separate text-Datei).

E. g. Derzeit habe ich:

C:\myfiles

9-ART-2013.pdf
4-EGO-2013.pdf
2-ART-2013.pdf

Meine text-Datei (in gleicher Reihenfolge wie Dateien):

C:\myfiles

_Smith
_Jenkins
_McMaster

Ich soll die Dateien werden wie folgt umbenannt:

9-ART-2013_Smith.pdf
4-EGO-2013_Jenkins.pdf
2-ART-2013_McMaster.pdf

Ich habe gesehen, ähnliche Probleme, wo die Menschen wollen, um rekursiv umbenennen von Dateien, aber Sie sind immer mit einem generischen gemeinsamen Anhängen von element wie das hinzufügen eines Unterstrichs oder pre-pending Ordner mit dem Namen, etc.

z.B. https://serverfault.com/questions/6268/easy-way-to-rename-all-files-in-a-directory-in-windows

  • Wie ist das Skript soll feststellen, welche Zeile in der Textdatei entspricht, welche mit dem Namen?
  • Sind die Dateien sortiert werden in dem Verzeichnis? In welcher Weise? Reverse-alphabetic wie pro Ihre Liste?
  • Ich war die Planung auf nur manuell stellen Sie sicher, dass der Artikel, um meine text-Datei entspricht der Ordner-Reihenfolge (assending). Ich habe eine excel-Datei mit einer Spalte für Dateiname und eine weitere Spalte für die entsprechende author_name.
  • Ich erkannte, dass ich rahmte die vorgeschlagene Lösung falsch. die Lösung wäre robuster auf Fehler (mit dem "file name" auf "Autor"), um einfach eine text-Datei mit einer "ALTEN-Name | NEUER Name" - Struktur. 9-ART-2013.pdf | 9-KUNST-2013_Smith.pdf-4-EGO-2013.pdf - | 4-EGO-2013_Jenkins.pdf-2-ART-2013.pdf | 2-KUNST-2013_McMaster.pdf, Dann könnte ich einfach anrufen, jede Zeile aus der text-Datei mit "For /f" und "Ren". Ich wollte versuchen, die Lösungen unten und geben Sie Ihre Kommentare unter.
  • Erlauben Sie mir, reframe Ihr problem. Es ist viel besser, speichern Sie die beiden Spalten in Ihrer excel-Tabelle nebeneinander in einer einzigen text-Datei, vielleicht getrennt durch ein Komma. Es ist dann einfach zu importieren dieser csv-Datei in ein array von benutzerdefinierten Objekten, und leiten Sie diese zu einer Schleife berechnet die neuen Namen für jedes Element, und führt dann eine Umbenennen-Objekt, um das Ergebnis zu erhalten. Von Ihrem vorherigen Kommentar, sieht aus wie Sie fuhren in diese Richtung.
  • Dumping eine Tabelle in eine CSV-Datei ist einfach in Excel.

InformationsquelleAutor TimK | 2013-11-18
Schreibe einen Kommentar