Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

Unbekannte Zeichenkette aus txt mit Zeilenangabe auslesen

Frage Entwicklung Batch & Shell

Mitglied: IForever

IForever (Level 1) - Jetzt verbinden

01.12.2014, aktualisiert 03.12.2014, 935 Aufrufe, 4 Kommentare, 1 Danke

Hallo Community

Nach über 4 Stunden herum probieren habe ich es aufgegeben und muss hier um Rat bitten...


Ich möchte mittels Batch Datei den Track eines Internet-Radios aus dem Quelltext der Seite kopieren und lokal in eine Textdatei schreiben,
um mir den Titel zu einem späteren Zeitpunkt anhören zu können.
In Verbindung damit habe ich mir den wget "Befehl" besorgt.


Was ich fest sagen kann:

- Der Track steht immer in der Zeile 204 (Bsp: DJ SHOG - Stranger On This Planet)
- Die Zeile sieht immer so aus (abgesehen von der Nummer hinter "release/", daher fällt eine Stringmanipulation meiner Meinung nach flach)
<a href="/release/4074" style="color: #FFFFFF">DJ SHOG - Stranger On This Planet</a>


Mein momentaner Quelltext sieht so aus:

@echo off
setlocal enableDelayedExpansion

:: Wenn vorheriger Quelltext vorhanden, dann löschen
IF EXIST A:\TechnoBaseTrack\index.html (DEL A:\TechnoBaseTrack\index.html)

:: Quelltext auslesen
wget -P A:\TechnoBaseTrack http://www.technobase.fm/

:: Zeile suchen
FINDSTR #FFFFFF A:\TechnoBaseTrack\index.html>=A:\TechnoBaseTrack\line.txt

:: Track extrahieren
FOR /F "delims=" %%s in (FINDSTR #FFFFFF A:\TechnoBaseTrack\line.txt) do @set track=%%s !track:*>=!
@ECHO %track%>>A:\TechnoBaseTrack\line.txt


Alles unter ":: Track extrahieren" ist kompletter Schwachsinn, so wie ich das sehe...
Und ":: Zeile suchen" fällt denke ich weg, insofern man die Zeile direkt angeben kann. (Nach #FFFFFF wurde gesucht, da dies nur in dieser Track-Zeile verwendet wird)


Ich bin mit meinem Latein am Ende und hoffe Ihr könnt mir dabei helfen
Mitglied: colinardo
01.12.2014, aktualisiert um 22:31 Uhr
Hallo IForever, Willkommen auf Administrator.de!
Mach's doch mit Powershell, da ist das Gedöns ein Einzeiler ohne Zusatztools
01.
[regex]::Match((New-Object System.Net.WebClient).DownloadString("http://www.technobase.fm"),'<a href="/release/.*?" style="color: #FFFFFF">([^<]+)</a>').Groups[1].Value | out-file "A:\TechnoBaseTrack\line.txt"
oder wenn's unbedingt Batch sein muss, direkt ohne Umweg über eine Textdatei mit curl für Windows in Batch (Die for-Schleifen-Methode kannst du aber auch auf dein HTML-File und wget anwenden)
01.
::Codepage ändern für Umlaute im Titel 
02.
chcp 1252 
03.
 
04.
:: Titel extrahieren ,verwendet 'curl' 
05.
for /f "tokens=3 delims=^>^<" %%a in ('curl -s http://www.technobase.fm/ ^| findstr /r /c:"/release/.*"') DO @echo %%a>"A:\TechnoBaseTrack\line.txt" 
06.
 
07.
::Codepage wieder zurücksetzen 
08.
chcp 850
Grüße Uwe
Bitte warten ..
Mitglied: Endoro
LÖSUNG 02.12.2014, aktualisiert 03.12.2014
Hey,
nach einer Zeilennummer kann auch gesucht werden:
01.
@echo off &setlocal disabledelayedexpansion 
02.
for /f "tokens=1*delims=:" %%a in ('wget -q -O- "http://www.technobase.fm/" ^|findstr /n "^"') do if %%a==204 set "TrackRaw=%%~b" 
03.
for /f "tokens=3delims=<>" %%a in ("%TrackRaw%") do >>"tracks.log" echo %%~a
Gruss, Endoro
Bitte warten ..
Mitglied: IForever
03.12.2014 um 16:34 Uhr
Hallo Uwe,

danke für deinen Vorschlag

Powershell schließe ich vorerst einmal aus, da ich in diesem Thema noch nie etwas gearbeitet habe.
Die Lösung mit dem curl habe ich bis jetzt nur einmal überflogen, scheint aber zu funktionieren.
Da ich mir das mit dem curl noch einmal anschauen muss wird das wohl erst morgen, bzw. Freitag Abend geschehen, ich melde mich dann noch einmal, sobald ich deinen Code getestet habe.

Gruß
Chris
Bitte warten ..
Mitglied: IForever
03.12.2014, aktualisiert um 17:49 Uhr
Hallo Endoro,

auch dir ein großes Dankeschön für den Vorschlag

Auf das einfach "Copy&Paste" habe ich keine Lösung gefunden, ich gehe mal davon aus, dass ich den Code noch einmal überfliegen muss, auch das werde ich wohl erst morgen bzw. Freitag Abend schaffen.

Gruß
Chris

EDIT:

Aus mir unerklärlichen Gründen hat der Code nun doch funktioniert Oo
Vielleicht ist mir beim ersten mal Copy-Paste ein Fehler unterlaufen ....

Vielen Dank für die Lösung, Endoro!
Morgen mache ich mich daran, den Code zu verstehen ^^

Gruß
Chris
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Mittels Batch eine Uhrzeit aus einer .txt auslesen und verabeiten (4)

Frage von Beatzler zum Thema Batch & Shell ...

Batch & Shell
gelöst Zeiten in .txt datei auslesen und Differenz berechnen (14)

Frage von meex87 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(14)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Windows Server
Kennwort vergessen bei Hyper vserver 2012r (12)

Frage von jensgebken zum Thema Windows Server ...

Linux Desktop
Bildschirmauflösung unter Linux festlegen (12)

Frage von itebob zum Thema Linux Desktop ...

Windows Userverwaltung
gelöst Administrator hat alle Rechte verloren (10)

Frage von mrdead zum Thema Windows Userverwaltung ...