Einfache Möglichkeit, alle Dateien in einem Verzeichnis in Windows umzubenennen [geschlossen]

9

Gibt es eine einfache Möglichkeit, alle Dateien in einem Verzeichnis umzubenennen? Ist PowerShell der richtige Weg?

Ich möchte davon ausgehen:

c:\family_pics\
   img123.jpg
   img124.jpg

dazu:

c:\family_pics\ 
   family_pics_1.jpg 
   family_pics_2.jpg

Im Idealfall möchte ich ein Skript für ein Verzeichnis ausführen, das alle Dateien basierend auf dem Namen des aktuellen Verzeichnisses unter Beibehaltung der Erweiterung umbenennt und den Verzeichnisbaum rekursiv durchläuft.

Sogar Mien
quelle

Antworten:

16

Auf der Grundlage, dass alles in einer Zeile von PowerShell ausgeführt werden kann (genau wie alles auch in einer Zeile von Perl), ist hier der PS-Code für ein einzelnes Verzeichnis.

$i=0; get-childitem $dirname | foreach-object {

       rename-item "$dirname\$_" $("{0}_{1}{2}" -f $dirname, ++$i, $_.Extension)
}

Um dies rekursiv zu tun, würden Sie das Obige in eine Funktion einschließen und es dann in jedem Verzeichnis in Ihrem Baum aufrufen. Sie können die Formatzeichenfolge auch durch etwas Anspruchsvolleres ersetzen, wenn Sie reguläre Ausdrücke verwenden müssen.

user2278
quelle
10

Das ist ein bisschen hackig, aber ich mache das seit ungefähr 12 Jahren und bin ziemlich schnell darin:

  • Öffnen Sie eine Eingabeaufforderung in c: \ family_pics und geben Sie ein dir >> dir.xls
  • Öffnen Sie die Datei dir.xls in Excel
  • Markieren Sie die erste Spalte, wählen Sie "Text in Spalten" und fügen Sie Spaltenumbrüche zu den Leerzeichen hinzu (Duplikate werden ignoriert).
  • Sie haben jetzt eine schöne Tabelle mit Ihren aktuellen Dateinamen, Dateigrößen usw.
  • Fügen Sie vor dem Dateinamen eine neue Spalte "ren" hinzu
  • Fügen Sie nach dem Dateinamen eine neue Spalte hinzu und verwenden Sie die Excel-Funktionen, mit denen Sie den neuen Dateinamen generieren möchten. Wenn Sie in Ihrem Fall die ersten beiden Dateinamen eingeben und dann auf die untere rechte Ecke der Zelle doppelklicken, erkennt Excel das Muster automatisch und generiert die verbleibenden Namen.
  • Speichern als ren.bat
  • Führen Sie die soeben erstellte Batchdatei aus, und alle Ihre Verzeichnisse werden umbenannt

Obwohl dies möglicherweise nicht sofort offensichtlich ist, eignet sich Excel sehr gut für diese Art von Aufgabe, da Sie zum Generieren der neuen Dateien jede beliebige Formel verwenden können, indem Sie Eingaben aus den vorhandenen Dateien (Zeitstempel, Dateiname, Größe usw.) Verwenden ).

Portman
quelle
Excel ist der beste Code- / Skriptgenerator, den ich kenne.
GvS
3

Obwohl Sie mit einer Batch-Datei arbeiten können, habe ich festgestellt, dass mehr Kontrolle, Optionen usw. und ein visueller Hinweis darauf, was stattfinden wird, besser sind.

Es gibt ein kostenloses Tool namens CKRename. Die Website des ursprünglichen Autors scheint verschwunden zu sein, aber die App ist voll funktionsfähig und sehr beliebt (ich benutze sie seit 8 Jahren). Laden Sie CKRename herunter

Hier ist ein Screenshot davon in Aktion Geben Sie hier die Bildbeschreibung ein

scunliffe
quelle
1

Sie können einfach alle gewünschten Elemente im Explorer markieren, dann mit der rechten Maustaste auf die erste klicken und sie umbenennen. Windows benennt sie dann alle für Sie mit derselben Namenskonvention um.

user2287
quelle
Ich habe es gerade versucht, beginnend mit fileA.m, fileB.m usw. Statt fileA_001.m, fileB_002.m, stattdessen fileA_001.m, fileA_001 (1) .m, fileA_001 (2) .m usw.
jacobsee
1

ReNamer: http://www.den4b.com/

Siehe auch: Wie benenne ich einen Teil eines Dateinamens aus einer Auswahl von Dateien in Windows um?

Legen Sie Ihren Ordner mit Bildern in ReNamer ab (Unterordner werden standardmäßig rekursiv hinzugefügt). Klicken Sie auf die Spalte Name, um nach Dateinamen zu sortieren, wenn Sie die Reihenfolge beibehalten möchten. Mit einem speziellen Meta-Tag können Sie den Namen des übergeordneten Ordners zum Umbenennen verwenden. Verwenden Sie die folgenden Umbenennungsregeln:

  1. Von Position 1 bis zum Ende löschen (Erweiterung überspringen)
  2. Fügen Sie ": File_FolderName: _" als Präfix ein (Erweiterung überspringen)
  3. Inkremental von 1 Schritt 1 serialisieren 1 als Suffix wiederholen (Erweiterung überspringen)

Geben Sie hier die Bildbeschreibung ein

Cagcowboy
quelle
+1 Umbenennung war einfach super!
Chris Marisic
0

Laden Sie RenameFiles (Freeware) herunter. Es ist eines der wenigen Programme, die ich wirklich vermisse, seit ich von Windows zu Apple gewechselt bin.

Es sieht so aus, als ob es hier verfügbar ist http://it-falke.com/software/renamefiles/us_description.php, aber ich habe keinen PC, um diesen Link zu testen. Die letzte Version, die ich verwendet habe, war 2.1.4. Es war wirklich einfach, aber vielseitig.

Nutzername
quelle
0

Dadurch werden die letzten vier Zeichen (normalerweise die Erweiterung) entfernt

dir *.jpg | % { ren $_.Name $_.Name.Substring(0,$_.Name.Length-4) }

Möglicherweise müssen Sie die oben genannten Einstellungen anpassen, um Leerzeichen oder Ihre spezifischen Umbenennungsanforderungen zu verarbeiten

Goyuix
quelle