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
GELÖST

Dateien in Unterordnern automatisch umbenennen

Frage Entwicklung Batch & Shell

Mitglied: 58945

58945 (Level 1)

17.12.2007, aktualisiert 19.12.2007, 8220 Aufrufe, 8 Kommentare

Hallo zusammen,

da ich wenig Ahnung von Batchdateien habe, jedoch zwangsweise eine benötige stelle ich nun hier diese Frage:

Ich habe eine Liste nach folgendem Schema erstellt (aus einer Liste aus einem bestimmten Programm)

  • ren alterdateiname.* neuerdateiname.*
  • ren alterdateiname2.* neuerdateiname2.*
  • ... und so weiter und so fort.

Die Dateien befinden sich jedoch in ca 100 Unterordnern (durchnummeriert von 1 - X). Wie lässt sich dieses Problem lösen?
  • * als Platzhalter für den Ordner habe ich versucht, das ging aber leider nicht,
  • ebenso die Batchdatei in jedem Ordner ausführen zu lassen geht nicht, da zu aufwändig,
  • auch in einer Schleife alle Dateien in jedem Unterordner versuchen umzubenennen ist nicht gut, da es ca 150.000 Dateien sind.

Gibt es hierfür eine kleine schnelle Lösung per Batchdatei oder ist dies nicht möglich?

Ich hoffe jemand von euch kann mir helfen und ich bedanke mich schon einmal für jeden helfenden Beitrag im voraus.

mit freundlichen Grüßen
Michael
Mitglied: Biber
17.12.2007 um 16:16 Uhr
Moin michaelv,

willkommen im Forum.

kannst Du zwei Details noch einmal etwas plastischer (z.B. mit Beispielen) darstellen:
  • die Unterordner befinden sich alle unter einem gemeinsamen Startverzeichnis (z.B. "D:\Adults\MeineUrlaubsbekanntschaften")
  • die Umbenennerei folgt einem für alle Dateien gleichen Muster oder hast Du eine Liste, in der für jede Datei "alterName", "neuerName" drinsteht? Oder sollen nur bestimmte Dateien (alle *.jpg oer so) umbenannt werden?

Grüße
Biber
Bitte warten ..
Mitglied: 58945
17.12.2007 um 16:22 Uhr
  • also so ganz genau weiß ich den Pfad nicht, nur die Dateien sind halt relativ zur Batchdatei in Unterordnern gespeichert, das weiß ich mit Sicherheit, für den Rest bin ich mich noch am erkundigen
bisher sieht es so aus:
Batchdatei auf Festplatte D: -> Dateien in den Ordnern D:/Test1, D:/Test2, ...

  • ich habe eine Dateiliste wo der aktuelle Dateiname und der neue Dateiname drin steht
Beispiel: Liste.txt mit Inhalt ren R95045.* R3107_02_2007_146.* wobei es sowohl jpeg, als auch TIF Files sind, aber jeder Dateiname ist einzigartig
Bitte warten ..
Mitglied: Biber
17.12.2007 um 17:20 Uhr
Moin michaelv,

dann sollte es eigentlich kein Problem mehr sein nach der ganzen Vorarbeit eine CMD-Promptzeile dafür abzufeuern.

Ich mach mal kurz ein Strategiebeispiel.
Meine Spielsituation: ich habe mal drei Txt-Dateien hier auf h:\docs...
01.
>dir h:\docs\*.txt /b /s 
02.
h:\docs\IBMRationalXDE.tip.txt 
03.
h:\docs\Java.tip.txt 
04.
h:\docs\Putty und WINSCP.txt
Dazu habe ich auch eine Umbenenn-Steuerdatei nach dem Muster "AlterName.ext;Neuername.ext"

Die heißt Renameliste.txt, liegt auf %temp% und sieht so aus:
01.
Java.tip.txt;2007_java_tipp.txt 
02.
Putty und WINSCP.txt;2007_PuTTY und WinScP.txt 
... hat also nicht für alle Dateien, denen ich begegnen werde, einen Alt/Neu-Eintrag.

von CMD-Prompt feuere ich [nur zur Demo, brauchst Du nicht!) ab:
01.
>for /r "H:\docs" %i in (*.txt) do @findstr /i "^%~ni" %temp%\RenameListe.txt 
02.
##und erhalte die "gefundenen", für die ich "Umbenenn-Regeln" habe. 
03.
Java.tip.txt;2007_java_tipp.txt 
04.
Putty und WINSCP.txt;2007_PuTTY und WinScP.txt
Will ich es gleich umbenennen, brauch ich nur noch ein paar Zeichen verändern:
01.
>for /r "H:\docs" %i in (*.txt) do @for /f "tokens=1-2 delims=;" %j in ('@findstr /i "^%~ni" %temp%\RenameListe.txt') do @echo rename "%i" "%k" 
02.
rename "H:\docs\Java.tip.txt" "2007_java_tipp.txt" 
03.
rename "H:\docs\Putty und WINSCP.txt" "2007_PuTTY und WinScP.txt  "
Also brauchst Du nur diese Zeile per Copy&Paste kopieren, mein "H:\Docs" in dein "Rootverzeichnis" zu ändern,
den Speicherort und den Inhalt der RenameListe anzupassen, fertig.
Und, falls Du es in einem Batch packen willst, dann noch alle Laufvariablen-Prozentzeichen verdoppeln (%%i statt %i etc.).

Dann können wir beide heute noch zeitig essen.

Grüße
Biber
Bitte warten ..
Mitglied: pacobay
17.12.2007 um 22:46 Uhr
Hallo Biber
also ich brauche immer etwas länger, wenn ich versuche Deine DOS-Werke zu verstehen.
Die sind klasse und für mich immer wieder eine intellektuelle Herausforderung.

Aber unter dem Gesichtspunkt "sowohl jpeg, als auch TIF Files", müsste doch im Bereich "for /r "H:\docs" %i in (*.txt) " zusätzlich auch noch „*.txt“ angepasst werden. Oder?

ciao pacobay
Bitte warten ..
Mitglied: Biber
18.12.2007 um 08:58 Uhr
Moin pacobay,

danke für die Blumen.
Du hast natürlich volkommen recht mit der Suchmaske.

Die müsste dann (wenn wir tatsächlich alles wissen) angepasst werden auf
01.
for /r "%StartDir%" %i in (*.tif *.jpeg *.jpg) do @whatever....
Dass die "FOR /R"-Anweisung auch eine Wildcard-Liste verarbeiten kann, ist nicht ganz so ausdrücklich dokumentiert, funktioniert aber bestens.

Grüße
Biber
Bitte warten ..
Mitglied: Biber
19.12.2007 um 09:54 Uhr
Moin michaelv,

Gibt es hierfür eine kleine schnelle Lösung per Batchdatei oder ist dies nicht möglich?
Gibt es von Dir ein kleines schnelles Feedback oder ist dies nicht möglich?
Ich hoffe jemand von euch kann mir helfen und ich bedanke mich schon einmal für jeden helfenden Beitrag im voraus.
Es bestätigt sich immer wieder, dass sich dieser Dank im voraus oft übersetzen lässt mit "ihr werdet nie wieder von mir hören".

Gib doch bitte Rückmeldung - unabhängig davon, ob es funktioniert oder nicht.

Danke
Biber
Bitte warten ..
Mitglied: 58945
19.12.2007 um 15:53 Uhr
Entschuldige das verspätete melden, war gestern dann doch noch mit anderen Dingen beschäftigt.

Deine Lösung musste ich dann doch nicht testen/einsetzen, da mir da noch was eingefallen war, was sich bestätigt hat. Ich versuche es kurz zu erklären.

Bspzeile aus meiner Rohliste:
3107 | 2 | 2006 | 141 | 3107\2\R90040

alte Datei hat den Namen: R90040.* (TIF oder jpeg halt, aber unerheblich)
neuer Name soll lauten: R3107_2_2006_141.*
hatte dabei allerdings übersehen, dass 3107\2\ schon den Ordner enthält, indem sich die Datei aktuell befindet. Somit musste ich die Liste einfach nur in eine Tabelle umwandeln (so hab ich es zumindest gemacht) die Ordnung herstellen und aus den ersten 4 Zeilen den neuen Dateinamen zusammensetzen und anschließend überall ein "ren " vorsetzen.
Insofern war das nachfragen hier evtl. ein bisschen vorschnell.

Trotzdem möchte ich mir hier nochmal für das schnelle Feedback und die Hilfe bedanken. Es ist erstaunlich zu sehen, wie komplexe Sachen man mit "simplen" Batchdateien lösen kann.

Mit freundlichen Grüßen
Michael
Bitte warten ..
Mitglied: Biber
19.12.2007 um 16:12 Uhr
Danke, michaelv,

für die prompte Reaktion.
Dann werde ich den Beitrag schließen - und gelöst ist ja auch.

Bis zum nächsten Thread
Biber
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Microsoft Office
gelöst Per VBA im Verzeichniss dateien mit Wildcard umbenennen (4)

Frage von usenussi zum Thema Microsoft Office ...

Windows 7
gelöst Mehrere Dateien in Windows umbenennen mit Batchjob (4)

Frage von Jeduja zum Thema Windows 7 ...

VB for Applications
gelöst Einzelne Dateien in Dateiliste umbenennen durch neuen Wert (Namen) aus einer Zelle (2)

Frage von two-ak-two zum Thema VB for Applications ...

Batch & Shell
14 Tage alte Dateien automatisch löschen - Shell (1)

Frage von traller zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...