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

Frage Entwicklung Batch & Shell

GELÖST

Text zwischen zwei Zeichenketten ausgeben

Mitglied: Zappdidappdi

Zappdidappdi (Level 1) - Jetzt verbinden

18.07.2012 um 22:25 Uhr, 3645 Aufrufe, 10 Kommentare

Hallo liebe Leute,

ich habe derzeitig mir zur Aufgabe gemacht aus einer HTML Seite, die ich per wget runterlade, einen bestimmten Bereich auszulesen.
Dieser Bereich wird durch zwei Wörter Abgegrenzt die sich nicht verändern, der Bereich dazwischen jedoch schon.

Beispiel:
<p><strong>Obst</strong></p>Apfel,Birne,Erdbeere<p><strong>Gemüse</strong></p>Apfel, Melone, Gurke, Salat

Ich möchte nun alles in eine neue txt Datei bekommen, was zwischen Obst und Gemüse liegt, wenn es ein paar Zeichen mehr oder weniger sind ist das nicht so schlimm, hauptsache "Apfel,Birne,Erdbeere" sind vollkommen erhalten.

Das ganze würde ich gerne mit einer Batch Datei verwirklichen. Natürlich habe ich schon vorher gesucht und geschaut ob ich es selber hinkriege und bin auf Teile wie "for /F" gekommen, habe aber nicht so wirklich begriffen, wie das verwendet wird.

Ich hoffe ihr könnt mir helfen

Mit freundlichen Grüßen

Zappdidappdi
Mitglied: TsukiSan
19.07.2012 um 07:00 Uhr
Hallo Zappdidappdi,

also in Batch kann ich dir keine Lösung bieten, aber in VBS mal was zum Ausprobieren.

01.
Dim SuchAnfang, SuchEnde 
02.
 
03.
URLPfad = "http://de.wetter.yahoo.com/" 
04.
 
05.
SuchAnfang = Chr(34) & "day-temp-current temp-c " & Chr(34) & ">" 
06.
SuchEnde = "&" 
07.
 
08.
Set Http=CreateObject("WinHttp.WinHttpRequest.5.1") 
09.
 
10.
Http.Open "GET",URLPfad,False 
11.
Http.Send 
12.
 
13.
temp = split(Http.ResponseText,SuchAnfang) 
14.
temp1 = split(temp(1),SuchEnde) 
15.
temp2 = temp1(0) & "°C" 
16.
 
17.
Wscript.Echo  temp2
Gruss
Tsuki
Bitte warten ..
Mitglied: 76109
19.07.2012, aktualisiert um 09:13 Uhr
Hallo Tsuki!

Bei Html-Text empfehle ich der Einfachheit halber RegExp zu verwenden.

Mit dem Obst/Gemüsebeispiel das Ganze dann in etwa so:
01.
Option Explicit 
02.
 
03.
Const sURL = "http://www.ObstUndGemuese.de" 
04.
Const sTxtFile = "C:\Test.txt" 
05.
 
06.
Dim oFso, oFile, oRE, oMatch, oSubMatch, sText 
07.
     
08.
On Error Resume Next 
09.
     
10.
With CreateObject("WinHttp.WinHttpRequest.5.1") 
11.
   .Open "get", sURL, False 
12.
   .send 
13.
   sText = .responseText 
14.
End With 
15.
        
16.
If Err Then 
17.
    WScript.Echo "Webseite nicht verfügbar!":  WScript.Quit 1 
18.
End If 
19.
     
20.
On Error GoTo 0 
21.
 
22.
Set oRE = New RegExp 
23.
Set oFso = CreateObject("Scripting.FileSystemObject") 
24.
 
25.
Set oFile = oFso.CreateTextFile(sTxtFile) 
26.
 
27.
With oRE 
28.
    .Global = True 
29.
    .IgnoreCase = True 
30.
    .Pattern = "obst.*p>(.*)<p" 
31.
End With 
32.
     
33.
For Each oMatch In oRE.Execute(sText) 
34.
    For Each oSubMatch In oMatch.SubMatches 
35.
        oFile.WriteLine oSubMatch 
36.
    Next 
37.
Next 
38.
 
39.
oFile.Close 
40.
 
Gruß Dieter
Bitte warten ..
Mitglied: TsukiSan
19.07.2012 um 09:15 Uhr
Hallo Dieter,

das ist natürlich schöneres Obst/Gemüse, als meines

Aber wir wissen ja noch nicht, ob der TO es mit VBS machen möchte.

Trotzdem Danke an dich!

Gruss
Tsuki
Bitte warten ..
Mitglied: 76109
19.07.2012, aktualisiert um 09:43 Uhr
Hallo Tsuki!

Naja, um's verschönern gings mir eigentlich weniger, aber wenn Du es sagst

Aber wir wissen ja noch nicht, ob der TO es mit VBS machen möchte.
Vielleicht liefert bastla auch noch eine Batchlösung, wobei ich denke, dass auch er bei Html-Text eine RegExp-Variante einer Batch-Variante vorziehen würde?

Gruß Dieter
Bitte warten ..
Mitglied: bastla
19.07.2012, aktualisiert um 12:29 Uhr
[OT]
@Dieter
dass auch er bei Html-Text eine RegExp-Variante einer Batch-Variante vorziehen würde
So isses ...

Grüße
bastla
[/OT]
Bitte warten ..
Mitglied: 76109
19.07.2012, aktualisiert um 12:37 Uhr
[OT]
Hallo bastla!

So isses ...
War mir nur zu 99,9% sicher

Gruß Dieter
[/OT]
Bitte warten ..
Mitglied: bastla
19.07.2012, aktualisiert um 12:29 Uhr
[OT]
Hallo Dieter!
nur zu 99,9%
Da bin ich ja beruhigt, dass ich nicht sooo berechenbar bin ...

Grüße
bastla
[/OT]
Bitte warten ..
Mitglied: Zappdidappdi
19.07.2012 um 12:44 Uhr
So,schon mal vielen vielen Dank für eure wunderbare Hilfe.
Ich habe jetzt das VBS Script übernommen und angeguckt. Wenn ich das richtig verstehe ist folgende Zeile dafür zuständig....

Zitat von 76109:
With oRE
.Global = True
.IgnoreCase = True
.Pattern = "obst.*p>(.*)<p"

... was aus unserer Internetseite ausgeschnitten wird.Leider ist das Beispiel, das ich gegeben habe, sehr vereinfacht, es komme noch mehrere <strong> und <p> drin vor bis ich zum ersehnten "Gemüse" komme.
Wäre es möglich das Gemüse als endpunkt zu nehmen?



Des weiteren hätte ich da noch eine weitere Frage (tut mir leid, dass ich euch so viel beschäftige )
Kann man auch als eingrenzung sagen, dass er nur in der Zeile in der "<strong>Obst" steht das ganze machen soll? Nur als Absicherung falls die Seite noch mehr Obst oder Gemüse auf der Seite stehen hat, dass ich nicht möchte...

Vielen Dank für eure Hilfe
Bitte warten ..
Mitglied: 76109
19.07.2012, aktualisiert um 13:23 Uhr
Hallo Zappdidappdi!

Könnte so gehen:
.Pattern = "\n.*obst.*gemüse.*p>(.*)<.*\r"

Gruß Dieter
Bitte warten ..
Mitglied: Zappdidappdi
19.07.2012 um 14:03 Uhr
Zitat von 76109:
Hallo Zappdidappdi!

Könnte so gehen:
.Pattern = "\n.*obst.*gemüse.*p>(.*)<.*\r"

Gruß Dieter

Super, funktioniert einwandfrei!
Danke für eure Hilfe!

Bis zum nächsten Problem
Bitte warten ..
Ähnliche Inhalte
VB for Applications
Text mit Msgbox Ausgeben bei verarbeitung
gelöst Frage von VBSnoob123VB for Applications1 Kommentar

Hallo, hat sich erledigt. hab mich entschlossen das Script in Html darzustellen und die anzeige direkt mit in die ...

Batch & Shell
Ergebnis in Text datei ausgeben
gelöst Frage von caschoplBatch & Shell2 Kommentare

Hallo, irgendwie stehe ich auf dem schlauch. Habe folgende Batch erstellt, aber der Text wier immer überschrieben. Das ergebnis ...

VB for Applications
Dateien nach "Text" durchsuchen und Pfad ausgeben
Frage von chgs2011VB for Applications32 Kommentare

Hallo, ich suche dringend ein kleines VBScript. Das Script soll einen bestimmt Text in Dateien suchen, den der Benutzer ...

Debian
Bash - String zwischen zwei Kommata ausgeben
gelöst Frage von plutowitschDebian3 Kommentare

Hallo, ich suche eine Möglichkeit wie ich einen String der zwischen zwei Kommata steht ausgeben kann. Das Problem ist, ...

Neue Wissensbeiträge
Router & Routing

PfSense als Addon auf QNAP

Information von magicteddy vor 8 StundenRouter & Routing2 Kommentare

Moin, für Spielereien eine ganz nette Idee aber ich fürchte das soetwas auch als echte Firewall genutzt wird: In ...

Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 15 StundenDatenschutz

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Microsoft

Letzte Updates für Win10 und Server2016 müssen bei Bedarf über den Update catalogue in den WSUS importiert werden!

Tipp von DerWoWusste vor 19 StundenMicrosoft1 Kommentar

automatisch kommt da nichts an im WSUS und auch nicht im SCCM. Siehe Hinweise zum Bezug der jeweils neuesten ...

Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 3 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement22 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...

Windows Server
Terminal Server 2016 erkennt Berechtigungen nicht
gelöst Frage von Thomas2Windows Server10 Kommentare

Hallo Administratoren, folgendes Problem stellt sich dar: Es gibt zwei Windows Server 2016, die als Terminal Server fungieren. Jetzt ...

Sonstige Systeme
7-zip: Programm frägt nach Passwort erst bei einzelnen Dateien
Frage von freeskierchrisSonstige Systeme7 Kommentare

Guten Morgen, ich habe ein Problem beim Arbeiten mit 7-zip: Wenn ich die einzelnen Dateien zu einem Archiv verpacke ...