Ich brauche eine Möglichkeit, alle Dateien in Ordnern und Unterordnern in Kleinbuchstaben umzubenennen.
Ich würde gerne wissen, ob es eine Möglichkeit gibt, dies nur unter Windows (XP oder 7) zu tun.
Ich brauche eine Möglichkeit, alle Dateien in Ordnern und Unterordnern in Kleinbuchstaben umzubenennen.
Ich würde gerne wissen, ob es eine Möglichkeit gibt, dies nur unter Windows (XP oder 7) zu tun.
Antworten:
Wechseln Sie in das Verzeichnis und führen Sie den folgenden Befehl aus:
Hier ist die Aufschlüsselung für den Fall, dass jemand etwas ändern / verbessern möchte:
for /f
- Für jede Zeile"Tokens=*"
- Verarbeiten Sie jeden Artikel in jeder Zeile.%f in (...)
-%f
ist Ihr Variablenname für jeden Artikel.dir
- listet jede Datei und jedes Unterverzeichnis in einem Verzeichnis auf./l
- (Parameter für dir) Verwendet Kleinbuchstaben./b
- (Parameter für dir) Verwendet das reine Format, nur die Datei- / Verzeichnisnamen, keine Größe, keine Überschriften./a-d
- (Parameter für mich) Sie nicht Liste Verzeichnisse . (a
steht fürattribute
,-
steht fürnot
undd
steht fürdirectory
) .rename "%f" "%f"
- Benennen Sie die Datei mit einem eigenen Namen um, der durch dendir
Befehl und die/l
Kombination in eine niedrigere Schreibweise umgewandelt wird .quelle
for /f "Tokens=*" %f in ('dir /l/b/a-d/s') do (rename "%f" "%f")
(fügte / r zu dir hinzu).spacetornado Renamer ist ein Windows-Programm, das Massenmengen von Dateien in Batches umbenennt . Sie können Text suchen und ersetzen, eine bestimmte Anzahl von Zeichen entfernen, die Groß- und Kleinschreibung in Groß- und Kleinschreibung oder in Großbuchstaben ändern und Text an den Anfang oder das Ende (Anhängen / Voranstellen) jedes Dateinamens einfügen
quelle
Seit Windows 7 können Sie PowerShell für diese Aufgaben verwenden
- Wählen Sie Ihren Stammordner
- Alle Dateien im Stammordner und in den Unterordnern werden umbenannt
- Ordnernamen werden mit ausgeschlossen
Where {-Not $_.PSIsContainer} |
quelle
Hier ist eine richtige rekursive Befehlszeilenlösung, die nur native cmd.exe-Befehle verwendet, die tatsächlich funktionieren. Ich glaube, es ist die einfachste native Lösung:
Wenn Sie bereit sind, über native cmd.exe-Befehle hinauszugehen, ist meine JREN.BAT-Funktion zum Umbenennen von regulären Ausdrücken eine weitere Option , die Optionen zum Konvertieren von Namen in Groß- oder Kleinbuchstaben unterstützt. Es ist ein reines Skript (hybrides JScript / Batch), das auf jedem Windows-Computer ab XP nativ ausgeführt wird - es werden keine exe-Dateien von Drittanbietern benötigt. Die vollständige Dokumentation ist integriert. Der Zugriff erfolgt über die Befehlszeile
jren /?
oderjren /??
wenn Sie eine Seitenausgabe wünschen.Mit JREN ist die rekursive Lösung so einfach wie:
quelle
/a-d
Schalter entfernen und es wird auch die Ordnernamen in Kleinbuchstaben." D"') was unexpected at this time.
ergibt sich Folgendes: Die Ausführung als direkter Befehl funktioniert einwandfrei. Bei der Ausführung als Batchdatei funktioniert dies nur nicht. Ich bin mir nicht sicher, wie ich es als Batch-Datei einrichten soll, dachte aber, ich würde mich mit dem Problem befassen.%D
muss nach%%D
und%F
nach%%F
gewechselt werden , wenn Sie den Befehl in ein Batch-Skript einfügen.Mein persönliches Lieblingsdienstprogramm zum Umbenennen von Stapeldateien ist Cylogs WildRename . Neben vielen anderen Funktionen kann die Groß- und Kleinschreibung von Dateinamen geändert werden. Das Beste an WildRename ist wahrscheinlich, dass es reguläre Ausdrücke unterstützt!
quelle
"Rekursive" Version der akzeptierten Antwort (funktioniert *)
for /f "Tokens=*" %f in ('cmd /c "echo %cd%& dir /l/b/ad/s"') do (for /f "Tokens=*" %g in ('dir /l/b/a-d "%f"') do (rename "%f"\"%g" "%g"))
Die erste Schleife
for /f "Tokens=*" %f in ('cmd /c "echo %cd%& dir /l/b/ad/s"')
Ruft eine Liste der absoluten Pfade aller Verzeichnisse im aktuellen (einschließlich) ab:
C: \ Foo>
C: \ Foo \ TO.txt
C: \ Foo \ Bar \ LOWER.txt
C: \ Foo \ Bar \ Baz \ CASE.txt
Die zweite Schleife
for /f "Tokens=*" %g in ('dir /l/b/a-d "%f"') do (rename "%f"\"%g" "%g")
Ruft eine Liste aller Dateinamen (oder Datei- und Verzeichnisnamen , wenn Sie den
/a-d
Schalter entfernen) in jedem der absoluten Pfade ab, die von der ersten Schleife gefunden wurden , und konvertiert den Namen dieser Dateien in Kleinbuchstaben.C: \ Foo \ TO.txt
C: \ Foo \ Bar \ LOWER.txt
C: \ Foo \ Bar \ Baz \ CASE.txt
* Es werden zwei Schleifen benötigt, da das zweite Argument
rename
ein Dateiname und kein absoluter Pfad sein muss (wie der vom/s
Switch erhaltene).quelle
cmd /c "echo %cd%&
in der erstenfor
? Es ist völlig unnötig.echo %cd%
dient zum Hinzufügen des aktuellen Ordners zur Liste der absoluten Pfade . undcmd /c
macht&
Arbeit, um Befehle zu kombinieren. Ich bin ein absoluter Neuling in Bezug auf Windows Batch Scripting . Wenn Sie einen besseren Weg kennen, können Sie die Antwort gerne verbessern!Sie könnten eine "Charakterersatz" -Strategie verwenden ...
... und so weiter für Buchstaben AZ. Sie könnten es wahrscheinlich in Form einer FOR-Schleife implementieren.
quelle
http://www.dostips.com/DtCodeCmdLib.php#Function.toLower bietet eine einfache Funktion, die Sie einschließen und aus einer Batch-Datei aufrufen können sollten.
Lassen Sie die Batch-Datei also die Ordner / Dateinamen durchlaufen und rufen Sie diese Funktion auf, um die Kleinbuchstabenversion des Namens zu generieren.
quelle
Von http://windowsitpro.com/articles/index.cfm?articleid=81612 :
Ich verwende nur Standardbefehle und habe LwrCase.bat und LwrCase_Folder.bat mit Skripts versehen, um einen Dateinamen in Kleinbuchstaben oder alle Dateinamen in einem Ordner in Kleinbuchstaben umzubenennen.
Verwenden Sie zum Umbenennen eines Dateinamens in Kleinbuchstaben Folgendes:
Wobei FullyQualifiedFileName der vollständig qualifizierte Dateiname ist, der umbenannt werden soll.
Um alle Dateinamen in einem Verzeichnis umzubenennen, verwenden Sie:
Dabei ist FullyQualifiedDirectoryName der vollständig qualifizierte Ordnerpfad und / S ein optionaler Parameter, mit dem auch die Dateinamen in allen Unterordnern umbenannt werden.
Hinweis: LwrCase.bat verwendet den Schalter / L des Befehls DIR, der Namen in Kleinbuchstaben zurückgibt.
LwrCase.bat enthält:
LwrCase_Folder.bat enthält:
quelle
Das beste Programm, um dies in Windows zu tun, ist Bulk Rename Utility . Es ist ein Werkzeug des Mannes. Sie können sogar Regex verwenden, um Dateien und / oder Ordner umzubenennen. Es hat auch Shell-Integration (so können Sie vom Explorer mit einem Rechtsklick ausführen), was sehr schön ist. 64-Bit- und 32-Bit-Versionen verfügbar.
quelle
Die von loftysnake akzeptierte Antwort auf diese Frage funktioniert für das aktuelle Verzeichnis, durchsucht jedoch keine Unterordner. Sawny schlug vor , die Antwort von loftysnake einfach zu ändern , um sie rekursiv zu machen, aber dies funktioniert nicht, da mit dem
rename
Befehl ein Laufwerk und ein Pfad mit Dateiname1 (Quelle) angegeben werden können und Dateiname2 (Ziel) nur ein Dateiname sein muss . So zitieren Sie die help (/?
) -Meldung:Funktioniert aber
move
worename
nicht, so können Sie Dateien mit diesem Befehl rekursiv in Kleinbuchstaben umbenennen:denn es stellt sich heraus, dass
Move
Verzeichnispfade bewältigen können.Der obige Befehl funktioniert, wenn er direkt in die Eingabeaufforderung (
CMD.EXE
) eingegeben wird . Wenn Sie dies aus einer batch (.BAT
) -Datei heraus tun möchten, müssen Sie die%
Zeichen verdoppeln :Und Sie können wahrscheinlich die Klammern weglassen und
/y
einfach sagendo move …
.quelle
move
gearbeitet , worename
nicht, und ich glaube , ich bin der einzige, der die Verwendung der vorgeschlagen hatmove
Befehl hier. Ich habe einfach die Vorschläge von @loftysnake und @sawny aufgegriffen und sie hoffentlich ein bisschen verbessert.move
, aber ich kann es jetzt nicht finden.Rekursive Lösung. Fügen Sie dies in eine recursiverename.cmd-Datei ein.
quelle
Power Shell
Navigieren Sie zum Verzeichnis und führen Sie Folgendes aus:
Ich habe überprüft, dass dies funktioniert. Gefunden hier: http://www.hanselman.com/blog/PennyPinchingVideoMovingMyWebsitesImagesToTheAzureCDNAndUsingACustomDomain.aspx
quelle