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

Ordner nach darin liegenden Dateien umbenennen

Frage Entwicklung Batch & Shell

Mitglied: Stefanie.Luehnsdorf

Stefanie.Luehnsdorf (Level 1) - Jetzt verbinden

13.01.2015, aktualisiert 15.01.2015, 882 Aufrufe, 3 Kommentare

Hallo allerseits,

ich stehe vor einem Problem, für das ich bisher trotz allen Suchens und Herumprobierens keine Lösung gefunden habe. Ich suche ein Script (Batch; notfalls auch Perl, Python etc.) welches das folgende Problem lösen kann:

Szenario:

Ein Programm liest Messwerte aus. Diese werden für jede einzelne Messung in Unterordnern mit zufälligen Namen (zumindest habe ich bei der Benennung keine Systematik erkennen können) im Verzeichnis D:\data\ abgelegt. Die Ordnerliste sieht dann etwa so aus:

D:\data\5BF154ED065
D:\data\A254DC584E2
D:\data\BFCDC215487
D:\data\D18258D12A1
D:\data\FC2485693B4

Jeder einzelne dieser Ordner enthält mehrere Dateien mit Messwerten und genau eine Log-Datei, die nach dem Messzeitpunkt benannt ist und die Endung .log trägt.

D:\data\5BF154ED065
      • 20150113tuesday110557.log
      • DateiA.txt
      • DateiB.txt
      • usw.

Ziel ist nun ein Script, das sämtliche Ordner durchläuft und jeden einzelnen Ordner nach dem Namen der darin liegenden Log-Datei umbenennt.

Das Resultat soll dann also so aussehen:

D:\data\20150113tuesday110557
      • 20150113tuesday110557.log
      • DateiA.txt
      • DateiB.txt
      • usw.

Und das, wie gesagt, für jeden einzelnen der unzähligen Ordner die sich inzwischen angesammelt haben.


Vielleicht weiß ja einer von Euch, wie man sowas elegant lösen kann. Ich bin für jeden Hinweis dankbar.

Mit bestem Dank im Voraus
und den allerbesten Grüßen!

Steffi Lühnsdorf
Mitglied: rubberman
LÖSUNG 13.01.2015, aktualisiert 15.01.2015
Hallo Stefanie.Luehnsdorf, willkommen im Forum.

Dein Vorhaben sollte sich mit ein paar Zeilen Batchcode erledigen lassen.

*.bat
01.
@echo off &setlocal 
02.
set "root=D:\data" 
03.
 
04.
cd /d "%root%" 
05.
for /d %%i in (*) do for %%j in ("%%~i\*.log") do ECHO ren "%%~i" "%%~nj" 
06.
PAUSE
Der Code zeigt lediglich, was passieren würde. Um ihn scharf zu machen, entferne ECHO und ggf. PAUSE.

Grüße
rubberman
Bitte warten ..
Mitglied: colinardo
LÖSUNG 13.01.2015, aktualisiert 15.01.2015
Hallo Steffi,
oder mit Powershell so:
01.
$folder = 'D:\data' 
02.
gci $folder | ?{$_.PSIscontainer} | %{Rename-Item $_.FullName (gci "$($_.Fullname)\*.log" | select -ExpandProperty Basename -First 1) -Force -EA Continue}
Grüße Uwe
Bitte warten ..
Mitglied: Stefanie.Luehnsdorf
15.01.2015 um 19:02 Uhr
Hallo allerseits,

vielen Dank an rubberman und colinardo für die schnellen Lösungsvorschläge. Es hat perfekt funktioniert.
Ich hatte gar nicht erwartet, am selben Abend überhaupt schon eine Reaktion zu erhalten.

Vielen Dank und beste Grüße!

Steffi
Bitte warten ..
Ähnliche Inhalte
Microsoft
Im ordner nach dateien aus excel liste suchen (2)

Frage von tioloco zum Thema Microsoft ...

Windows 7
Dateien umbenennen Unterschiede in Win7 und XP (3)

Frage von mani55 zum Thema Windows 7 ...

Windows Server
gelöst Freigegebener Ordner "Eigene Dateien" (8)

Frage von JensDND zum Thema Windows Server ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Windows Server

Exchange 2010 Active Directory und Windows Server 2016

(4)

Erfahrungsbericht von Herbrich19 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Internet
gelöst Mitarbeiter surft auf unerwünschter Seite - Wie damit umgehen? (33)

Frage von sabines zum Thema Internet ...

Netzwerke
Wie erstelle ich ein Intranet (19)

Frage von Leonardnet zum Thema Netzwerke ...

LAN, WAN, Wireless
gelöst Eintägige Netzwerkunterbrechung trotz Backupleitung (15)

Frage von iAmbricksta zum Thema LAN, WAN, Wireless ...

Netzwerke
VPN-Server einrichten PPTPD-Einrichtung gescheitert (14)

Frage von MIlexx zum Thema Netzwerke ...