Top-Themen

Aktuelle Themen (A bis Z)

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, 3412 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 ..
Ähnliche Inhalte
Batch & Shell
Batch: Batch in batch in cfg schreiben
gelöst Frage von pixelBfBatch & Shell2 Kommentare

Hayy, ich bin neu hier im forum:)) Meine frage: Kann ich eine batch schreiben die was in eine batch ...

Batch & Shell
Batch aus Batch mit anderen Rechten starten
gelöst Frage von thilo-55Batch & Shell15 Kommentare

Hallo zusammen, bin schier am verzweifeln: System ist Win7 mit Benutzer "User" mit user-rechten und "Admin" mit admin-rechten (wer ...

Batch & Shell
Wie ändert eine batch eine bestimmte zeile in einer anderen batch
Frage von J4YK0BBatch & Shell3 Kommentare

Wie schreibt eine batch eine andere batch um, aber nur eine SPEZIELLE zeile? Das System ist wiefolgt. Man gibt ...

Batch & Shell
Womit kann ich in einer Batch viertelstündlich eine andere Batch aufrufen?
Frage von red-eyeBatch & Shell16 Kommentare

Hallo allerseits! Seit drei Stunden versuche ich selbst einen geeigneten Befehl zu finden, bzw. hier im Forum eine Antwort ...

Neue Wissensbeiträge
Microsoft Office

Office 2010 Starter erneut auf einer frischen Windows-Version installieren

Tipp von Lochkartenstanzer vor 1 TagMicrosoft Office9 Kommentare

Moin, vor ein paar Tagen schlug bei mir ein Kunde auf, der sein Widnows 7 geschrottet und es inklusive ...

Datenbanken

Upgrade MongoDB 3.4 auf 3.6

Erfahrungsbericht von Frank vor 1 TagDatenbanken

Seit kurzem gibt es das 3.6 Update für die MongoDB: Sicherheit, das Sortieren, Aggregation und auch die Performance wurde ...

SAN, NAS, DAS

Backdoor Zugang und Upload-Bug in vielen Western Digital MyCloud Geräten

Information von Frank vor 1 TagSAN, NAS, DAS2 Kommentare

James Bercegay von der Firma Gulftech hat die Fehler an Western Digital gemeldet und das Unternehmen stellt bereits ein ...

Microsoft Office

Outlook 2016 - Beim Weiterleiten keine PDF Anhänge mehr - KB4011626 entfernen

Erfahrungsbericht von Deepsys vor 1 TagMicrosoft Office3 Kommentare

Wenn ihr feststellt das ihr beim Weiterleiten von E-Mails keine PDF Anhänge mehr versendent, dann dankt Microsoft. Diese tolle ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Drucker und Scanner
Gesucht DIN A3 Drucker
Frage von NebellichtDrucker und Scanner15 Kommentare

Hallo, ich möchte einen neuen DIN A3 Drucker kaufen. Um ab und zu, ca. 1 mal die Woche Farbausdrucke ...

iOS
Einladung vom iphone kalender
Frage von jensgebkeniOS15 Kommentare

Hallo Gemeinschaft, folgendes Problem - immer wenn ich von meinem Iphone einen Termin einztrage und diesem Termin Teilnehmer zuweise, ...

Windows Netzwerk
Drucker isolieren in Windows Domäne
gelöst Frage von lcer00Windows Netzwerk14 Kommentare

Hallo zusammen, habe eine Windows-AD (2012R2) in der es einen Druckerserver gibt. Mittlerweile verliere ich das Vertrauen in die ...