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

Dateinamen auslesen und Umbenennen

Frage Entwicklung Batch & Shell

Mitglied: Floggy

Floggy (Level 1) - Jetzt verbinden

08.07.2013 um 14:46 Uhr, 1736 Aufrufe, 7 Kommentare

Hallo Liebe Gemeinde

ich bräuchte mal wieder einen Batch ^^

Folgendes Szenario:

Ein Ordner wird mit Dateien befüllt die folgenden aufbau haben:
ede20c1ff9f6143e2486ed5b1435df78 - Klicke auf das Bild, um es zu vergrößern

Diese Dateien müssen umbenannt werden mit folgendem Aufbau:

rot_lila_grün

Könnt ihr mir dabei helfen`?

Danke
Mitglied: Endoro
08.07.2013 um 15:47 Uhr
Hallo Floggy,

mein Vorschlag mit sed:
>echo EEEL0001_000851_76136437_34364249|sed -r "s/(\w+)_(\w+)_(\w+)_(\w+)/\4_\2_\1/" 
34364249_000851_EEEL0001
lg
Bitte warten ..
Mitglied: Biber
08.07.2013, aktualisiert um 16:10 Uhr
Moin floggy,

ich würde da nicht so viel Heckmeck drum machen.

Am Cmd-Prompt in das verzeichnis mit den Dateien wechseln und dann
ohne das ">" am Anfang; das soll der Prompt sein
>for /f "delims=_ tokens=1-4" %a in ('dir /b /a-d "eeel0001_*_*_*"') do @echo ren "%a_%b_%c_%d" "%d_%b_%a"
Vorausgesetzt, di Dateien haben wirklich keine Extension - wenn doch, dann
- die tokens auf 1-5,
- die delims auf "_." und
- die Laufvariablen um %e erweitern.

Wenn ich den DIR-Befehl nur anwende auf alle Dateien der Konvention "eeeel0001_*_*_*", dann wäre mir das sicher genug.

Grüße
Biber
Bitte warten ..
Mitglied: Floggy
09.07.2013, aktualisiert um 08:36 Uhr
Die Konvention ist nicht immer "eeel0001" diese ist auch variable.
Und ich bräuchte eine Batchdatei, da der Ordner täglich mit hunderten Dateien gefüllt wird.
Bitte warten ..
Mitglied: Endoro
09.07.2013 um 09:01 Uhr
Hallo,

du brauchst mit sed kein besonderes Script.
Einfach den Befehl vom Kommandoprompt absetzen oder in eine BAT schreiben.
Sie dir den output an und lösch das Wort echo, wenn alles OK ist.

 dir /b /a-d |sed -nr "/(\w+)_(\w+)_(\w+)_(\w+)/s//echo ren \"^&\" \"\4_\2_\1\"/ep"
lg
Bitte warten ..
Mitglied: Floggy
09.07.2013 um 09:08 Uhr
@Endoro
Ich würde doch gerne bei einem "normalen" batch bleiben, da ich diese "SED" routine installieren müsste.

@Biber
ich werde deine Befehlszeile wie folgt probieren :
for /f "delims=_ tokens=1-4" %a in ('dir /b /a-d *_*_*_*') do @echo ren "%a_%b_%c_%d" "%d_%b_%a"
Bitte warten ..
Mitglied: Floggy
09.07.2013 um 09:14 Uhr
Ich versteh grad nichts mehr ^^
ich glaub ich mach mehr kaputt als zum funktionieren zu bringen -.-
Bitte warten ..
Mitglied: Floggy
09.07.2013 um 10:01 Uhr
gelöst


set "Ordner=C:\test"
pushd "%Ordner%"
pause
for /f "delims=_ tokens=1-4" %%i in ('dir /b /a-d *_*_*_*') do ren %%i_%%j_%%k_%%l %%l_%%j_%%i
popd
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Sticky Notes - Autostart unterbinden

Tipp von Pedant zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Dateien (PDF) umbenennen via batch, teilw. Dateinamen übernehmen, neues Präfix (6)

Frage von brause1701 zum Thema Batch & Shell ...

Windows Netzwerk
gelöst Powershell skript zum Auslesen der im AD angemeldeten User (2)

Frage von jan.kleinel zum Thema Windows Netzwerk ...

Grafikkarten & Monitore
Matrox Grafikkarte Betriebszeit auslesen (5)

Frage von blade999 zum Thema Grafikkarten & Monitore ...

Batch & Shell
gelöst Bestimmte Zeile einer Textdatei mit Batch auslesen (2)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Base64 Decode (Batch,VBS) (26)

Frage von clragon zum Thema Batch & Shell ...

Flatrates
DeutschlandLAN der Telekom - welche internen IPs? (19)

Frage von qualidat zum Thema Flatrates ...