Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Dateinamenbereinigung per Batch

Frage Entwicklung Batch & Shell

Mitglied: rannseier2

rannseier2 (Level 1) - Jetzt verbinden

11.01.2011, aktualisiert 18.10.2012, 3360 Aufrufe, 14 Kommentare

Hallo,

Ich habe (leider) eine 2TB-Platte mit einer ganzen Menge unsortiertem Kram "geerbt". Während der Inhalt zum Großteil brauchbar ist sind es die Dateinamen nicht.

Ich möchte gerne eine Batchdatei schreiben und Rekursiv alle DAteinamen und Verzeichsnamen bereinigen.

Ein Teil der Dateinamen brauche ich nur am Anfang zu bereinigen, Beispiel:

xyz-blabla.txt soll zu
blabla.txt werden.

Auch sollen alle Punkte zu Leerzeichen werden und doppelte Leerzeichen zu einem Zusammengefassst werden.

Die letzten Batchs habe ich 96 auf einem Amiga geschrieben, weiss jemand wie man sowas via Batch unter Win/Kommandozeile realsiert?


Gruß,
Karl
Mitglied: mathe172
11.01.2011 um 20:09 Uhr
Hallo rannseier2!

Versuchs mal damit(Leerzeichen find ich zwar nicht so schön...):
01.
@echo off & setlocal enabledelayedexpansion 
02.
set "Drive=E:\" 
03.
 
04.
for /R "%Drive%" %%A in ("*.*") do ( 
05.
call :CleanName "%%~nA" 
06.
echo ren "%%A" "!Name!%%~xA" 
07.
REM Das echo für Tatsächlichen Gebrauch löschen 
08.
09.
pause 
10.
goto :eof 
11.
 
12.
:CleanName 
13.
set "Name=%~1" 
14.
for /F "tokens=1* delims=-" %%B in ("%Name%") do set "Name=%%C" 
15.
set "Name=%Name:.= % 
16.
set "Name=%Name:  = %" 
17.
goto :eof
Mathe172
Bitte warten ..
Mitglied: pieh-ejdsch
11.01.2011 um 20:36 Uhr
moin mathe,

da is noch was...Leerzeichen.
mach mal aus Zeile 06.
echo ren %%A "!Name!%%~xA"

Gruß Phil
Bitte warten ..
Mitglied: mathe172
11.01.2011 um 20:41 Uhr
Hallo Phil!

Danke fürs Draufaufmerksam machen -Habs jetzt verbessert.

Mathe172
Bitte warten ..
Mitglied: Friemler
11.01.2011, aktualisiert 18.10.2012
Hallo Karl,

ich vermute mal ganz frech, dass es sich beim Inhalt Deiner Platte um ähh... bewegte Bilder handelt (hüstel). Kenne solche Machwerke. Hauptsache mal alles gesammelt, was sich kriegen lässt, die Benennung ist erstmal egal. Dem Namenschaos mit Batchskript Herr zu werden, ist ein schwieriges Unterfangen, da es kein durchgängiges Benennungsschema gibt. Ich würde Dir ein Tool zum massenweise umbenennen von Dateien empfehlen (als Stichwörter KRename, RenameMaster, Bulk Rename Utility), einfach mal Google fragen und darauf achten, dass Deine Betriebssystemversion unterstützt wird.

Oder Du nimmst FreeCommander, ein kostenloser TotalCommander-Clon. Dort kannst Du eine Flat-Ansicht der Ordnerstruktur einstellen, d.h. Du siehst alle Dateien auf der Platte, auch die, die in Unterverzeichnissen liegen. Dann markierst Du alle oder nur die, deren Namen ungefähr gleich chaotisch sind und startest das eingebaute Massen-Umbenennungsutility. Dort kannst Du verschiedene Einstellungen machen, nach welchen Regeln umbenannt werden soll und siehst eine Vorschau des Ergebnisses sowie evtl. auftretende Namenskonflikte. Ist aber nicht so mächtig wie die darauf spezialisierten Tools.

Hier gibts auch einen Tipp zum Thema mit der Nennung von mehreren Umbenennungs-Tools.

Viel Erfolg!

Gruß
Friemler
Bitte warten ..
Mitglied: rannseier2
11.01.2011 um 22:45 Uhr
Hallo,

Die Scripte sehen schonmal ganz gut aus.

Wie kann ich am besten String aus dem Dateinamenanfang entfernen?


Gruß,
Karl


PS: Sich nicht nur Urlaubsvideos sondern auch noch andere "Errungenschaften".
Bitte warten ..
Mitglied: bastla
11.01.2011 um 23:38 Uhr
@mathe172
... und nur für den Fall, dass es noch weitere "-" im Namen gäbe (und diese und die Namensteile danach erhalten bleiben sollen):
for /F "tokens=1* delims=-" %%B in ("%Name%") do set "Name=%%C"
Grüße
bastla
Bitte warten ..
Mitglied: mathe172
12.01.2011 um 10:18 Uhr
@Biber: Habs oben geändert

@rannseier2: Der erste String bis zum "-" wird doch gelöscht...

Mathe172
Bitte warten ..
Mitglied: rannseier2
12.01.2011 um 16:15 Uhr
@mathe172:

Ach so, dann habe ich mich wohl falsch ausgedrückt. Das xyz- sollte nur ein Bindestrich sein, es gibt durchaus Prefixe die erhalten bleiben sollen. Ich dachte an was wo ich dann z.B. nach xyz- und xzy- Suche und dieses lösche aber z.B. abc- gar nicht antaste. Geht das irgendwie?


Gruß,
Karl
Bitte warten ..
Mitglied: mathe172
12.01.2011 um 16:45 Uhr
Hallo rannseier2!

Versuchs mal damit:
01.
@echo off & setlocal enabledelayedexpansion 
02.
set "Drive=E:\" 
03.
REM Alle Suchen-Ersetzen-Paare. Bsp: Suche:"  " Ersetze mit:" " Achtung: Zeichen wie = escapen: ^= 
04.
set "Str1=  " 
05.
set "Ers1= " 
06.
set "Str2=." 
07.
set "Ers2= " 
08.
 
09.
for /F "tokens=1 delims=Str=" %%A in ('set Str') do if !last! lss %%A set "Last=%%A" 
10.
for /R "%Drive%" %%A in ("*.*") do ( 
11.
call :CleanName "ÿ%%~nA" 
12.
echo ren "%%A" "!Name!%%~xA" 
13.
REM Das echo für Tatsächlichen Gebrauch löschen 
14.
15.
pause 
16.
goto :eof 
17.
 
18.
:CleanName 
19.
set "Name=%~1" 
20.
for /l %%B in (1,1,%Last%) do ( 
21.
set "Str=ÿ!Str%%B! 
22.
set "Ers=!Ers%%B!" 
23.
set "Name=!Name:%Str%=%Ers%!" 
24.
goto :eof
Mathe172
Bitte warten ..
Mitglied: rannseier2
14.01.2011 um 01:18 Uhr
Hallo,

Das funktioniert schon mal soweit, hier für schon mal einen besten Dank.

Frage:

Wie kann man das Script auch auf Verzeichnisse erweitern?


Gruß,
Karl
Bitte warten ..
Mitglied: rannseier2
14.01.2011 um 02:30 Uhr
Hallo Mathe,

Das Script sieht Vielversprechend aus, funktioniert leider nicht.

Liegt das an den "ÿ"?


Gruß,
Karl
Bitte warten ..
Mitglied: mathe172
14.01.2011 um 20:03 Uhr
Hallo rannseier02!

Sorry - Ich hatte noch zwei Denkfehler
Das hier funktioniert aber zumindest bei mir:
01.
@echo off & setlocal enabledelayedexpansion 
02.
set "Drive=E:\" 
03.
REM Alle Suchen-Ersetzen-Paare.  
04.
REM Bsp: Suche:"  " Ersetze mit:" "  
05.
REM Soll ein String nur am Namensanfang gesucht werden, vor beide Strings des Paares ein \ machen.  
06.
REM Achtung: Zeichen wie = escapen: ^= 
07.
set "Str1=." 
08.
set "Ers1= " 
09.
set "Str2=  " 
10.
set "Ers2= " 
11.
 
12.
for /F "tokens=1 delims=Str=" %%A in ('set Str') do if !last! lss %%A set "Last=%%A" 
13.
for /R "%Drive%" %%A in ("*.*") do ( 
14.
call :CleanName "\%%~nA" 
15.
echo.ren "%%A" "!Name:~1!%%~xA" 
16.
REM Das echo für Tatsächlichen Gebrauch löschen 
17.
18.
pause 
19.
goto :eof 
20.
 
21.
:CleanName 
22.
set "Name=%~1" 
23.
for /l %%B in (1,1,%Last%) do ( 
24.
set "Str=!Str%%B! 
25.
set "Ers=!Ers%%B!" 
26.
call :Ersetzen 
27.
28.
goto :eof 
29.
 
30.
:Ersetzen 
31.
set "Name=!Name:%Str%=%Ers%!" 
32.
goto:eof
Mathe172
P.S.: Das ÿ war ein nicht wirklich durchdachter Versuch, die ersetzung auf den Anfang der Namen zu Begrenzen- Was beim ersetzen von "." zu " " nicht viel Sinn gemacht hätte...
Bitte warten ..
Mitglied: rannseier2
14.01.2011 um 21:56 Uhr
Hallo Mathe,

Das sieht gut aus und funktioniert auch bei mir.

Gibt es eine Möglichkeit dass auch für die Verzeichnisnamen zu erweitern?


Gruß,
Karl
Bitte warten ..
Mitglied: pieh-ejdsch
14.01.2011 um 22:05 Uhr
moin,

ich verweise mal auf ein Script welches Ordnungsgemäß umbenennt: Ersetzen von Zeichen in Datei- und Verzeichnisnamen in allen Unterordnern
und zwar auch die betreffenden Ordnernamen vorzugsweise auch rekursiv.

zwar nur SonderZeichen etc. zum einzelnen Ersetzen aber ich guck mal ob ich noch was einfügen / ergänzen kann

@mathe = ~ * Istgleich , Tilde und Stern kannst Du nicht mit Erweiterter Variablendarstellung ersetzten.

Gruß Phil
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Batch zum bearbeiten mehrerer CSV (3)

Frage von Matzus87 zum Thema Batch & Shell ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
CMD Verschlüsslung ( Batch ) (11)

Frage von clragon zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Microsoft
Ordner mit LW-Buchstaben versehen und benennen (19)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...