Windows-Massenumbenennung des mittleren Dateinamens über CLI?

13

Originaldateien

File 15 - Example.txt
File 2 - Example.txt
File 22 - Example.txt
File 3 - Example.txt
File 4 - Example.txt
File 5 - Example.txt

Gewünschte Ausgabe

File 15 - Example.txt
File 02 - Example.txt
File 22 - Example.txt
File 03 - Example.txt
File 04 - Example.txt
File 05 - Example.txt

Einzelne Dateien können mit einfach umbenannt werden ren.

ren "File 2 - Example.txt" "File 02 - Example.txt"

Wäre es möglich, es mit Windows renoder einem renameTool massenweise umzubenennen ?

Sabrina
quelle
1
Nizza Kostenloses Dienstprogramm, um diese Art von Aufgabe einfach zu machen .... bulkrenameutility.co.uk/Main_Intro.php
Moab
Genau. Ich kann für dieses viele GUI - basierte Lösungen nennen, und Wunder , warum das Beharren auf CLI
Mawg sagt wieder einzusetzen Monica
@Mawg, können Sie mit diesen GUI-Tools Skripte erstellen?
Sabrina
Ich könnte - mit AutoIt - aber würde wahrscheinlich dagegen empfehlen :-) Ich habe mich nur gefragt, ob es eine harte Anforderung für CLI gibt, und jetzt scheint es so, als gäbe es sie. Vielen Dank für die Klärung
Mawg sagt, Monica

Antworten:

13

Wäre es möglich, es mit Windows Ren oder Rename Tool Bulk umzubenennen?

Ja, aber es ist eine Batchdatei erforderlich.

test.cmd:

@echo off
setlocal EnableDelayedExpansion
for /f "tokens=1,2,3,4" %%i in ('dir /b *Example.txt') do (
  rem pad 2nd token with leading zero
  set _num=0%%j
  set _num=!_num:~-2!
  ren "%%i %%j %%k %%l" "%%i !_num! %%k %%l"
  )
endlocal

Beispiel:

> dir *Example.txt
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test\test

03/01/2019  11:30                 0 File 15 - Example.txt
03/01/2019  11:30                 0 File 2 - Example.txt
03/01/2019  11:30                 0 File 22 - Example.txt
03/01/2019  11:30                 0 File 3 - Example.txt
03/01/2019  11:30                 0 File 4 - Example.txt
03/01/2019  11:30                 0 File 5 - Example.txt
               6 File(s)              0 bytes
               0 Dir(s)  1,075,134,230,528 bytes free

> ..\test

> dir
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test\test

03/01/2019  11:54    <DIR>          .
03/01/2019  11:54    <DIR>          ..
03/01/2019  11:30                 0 File 02 - Example.txt
03/01/2019  11:30                 0 File 03 - Example.txt
03/01/2019  11:30                 0 File 04 - Example.txt
03/01/2019  11:30                 0 File 05 - Example.txt
03/01/2019  11:30                 0 File 15 - Example.txt
03/01/2019  11:30                 0 File 22 - Example.txt
               6 File(s)              0 bytes
               2 Dir(s)  1,075,134,230,528 bytes free

Weitere Lektüre

DavidPostill
quelle
17

Dieser PowerShell One Liner erweitert alle Zahlen im Dateinamen auf zwei Stellen .PadLeft(2,'0'):
(und lässt Zahlen mit mehr Stellen unberührt)

Get-ChildItem *[0-9]*.txt|Rename-Item -NewName {([regex]::Replace($_.BaseName,'\d+',{$args[0].Value.PadLeft(2,'0')}))+$_.Extension}

Um am Thema zu sein, in eine cmd-Zeilen- / Batch-Datei gewickelt:

Powershell -Nop -C "Get-ChildItem *[0-9]*.txt|Rename-Item -NewName {([regex]::Replace($_.BaseName,'\d+',{$args[0].Value.PadLeft(2,'0')}))+$_.Extension}"

Um auf der sicheren Seite zu sein, bevor Sie die Befehle ausführen, hängen Sie entweder an

  • -Confirm die fragt vor dem Umbenennen
  • -WhatIfdie Listen aller Umbenennungen es würde ohne den Parameter ausführen

gerade vor dem letzten "

LotPings
quelle
3

Bearbeiten: Ich habe gerade bemerkt, dass es bei dieser Frage speziell um das Umbenennen über die Befehlszeile geht, daher wird die Frage nicht direkt beantwortet ... Ich behalte sie vorerst in der Hoffnung, dass sie für andere nützlich ist.


Der totale Kommandeur Dateimanager verfügt über ein hervorragendes Massenumbenennungstool. Es enthält viele Funktionen, darunter eine Vorschau zum Umbenennen, verschiedene Umbenennungsmasken, reguläre Ausdrücke, das Umbenennen von Dateien in der gesamten Ordnerhierarchie und vieles mehr. Gleichzeitig ist es recht einfach zu bedienen.

Hier ist ein Screenshot zur Demonstration seiner Verwendung:

Total Commander Multi Rename Beispiel

Schritt für Schritt:

  1. Laden Sie Total Commander herunter und führen Sie es aus.
  2. Wechseln Sie in den Ordner mit den umzubenennenden Dateien.
  3. Markieren Sie die umzubenennenden Dateien:
    • Option 1 - Ctrl+ Azum Markieren aller Dateien im Ordner.
    • Option 2 - Markieren Sie die Dateien nacheinander mit der Spacerechten Maustaste oder der Taste.
    • Option 3 - Öffnen Sie "Find Files" ( Alt+ F7), geben Sie *.txt"Search for" ein, klicken Sie auf "Start Search", drücken Sie "Feed to listbox" und markieren Sie die Dateien mit Ctrl+ A. Verwenden Sie diese Technik, wenn Sie Dateien auch in inneren Ordnern umbenennen möchten.
  4. Drücken Sie Ctrl+ M, um das Mehrfachumbenennungswerkzeug zu öffnen.
  5. Stellen Sie die gewünschten Werte in den Feldern "Suchen nach" und "Ersetzen durch" ein. Wenn Sie einen regulären Ausdruck verwenden, aktivieren Sie das Kontrollkästchen RegEx.
  6. Drücke "Start!".
Valiano
quelle
-2

ren *.bat *.txtfunktioniert, um Erweiterungen für alle übereinstimmenden Dateien umzubenennen, wobei der andere Teil des Namens beibehalten wird. Könnten Sie dies nicht missbrauchen, um eine Folge von renBefehlen auszuführen?

  • ren "File *" "File 0*"
  • ren "File 00*" "File 0*"
  • (beschäftige dich mit baumelnden Resten wie File 022 - Example.txt
Douglas Held
quelle
1
Dies ist NICHT hilfreich. Haben Sie überprüft, was Ihr Befehl bewirkt? 2-> 0, 22-> 02, 15-> 05.
LotPings
Nein, ich habe kein Windows-Betriebssystem und habe es nicht ausprobiert. Aber ich habe jahrelang daran gedacht, dass REN dies kann. Ich wollte trotzdem einen Vorschlag machen.
Douglas Held