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

Per Batch HTML Text auslesen

Frage Entwicklung Batch & Shell

Mitglied: Nohouse303

Nohouse303 (Level 1) - Jetzt verbinden

21.05.2009, aktualisiert 18.10.2012, 8386 Aufrufe, 15 Kommentare

Es gibt keine Probleme: Nur Herausforderungen!

Moin, moin,

trotz des Feiertages lässt mir mein Problem ( keine Ruhe.

Ich habe in einem Verzeichnis viele HTML Dateien.

Ich muss jede via Batch nach einen Text durchsuchen.

HTML Schnipsel:
<span class="Small">M * R+ * * OT * EZMM / / 556 / C * 2 * 5.0 607</span>

Ich muss nach "OT" suchen. Normalerweise steht da "OK".

Falls also "OT" vorhanden ist, brauche ich den Dateinamen oder wenigstens die Info das OT vorhanden ist.

Meine bisherigen versuche waren leider nicht von erfolg gekrönt.

for /f %%i in ('findstr /C:"OK" %HTML_Datei%') do set istda=1

oder

@findStr /v /C:"> D * R+ * * OT * EZMM / / 711 / C * 2 * 5.0 607<" %HTML_Datei% >> A_Talla.txt

Über Eure erneute Unterstützung würde ich mich sehr freuen.

Gruss der Nohouse303
Mitglied: bastla
21.05.2009 um 09:18 Uhr
Hallo Nohouse303!

Vielleicht so:
findstr /i /m /c:"OT" "D:\Verzeichnis\*.html"
bzw wenn's genauer sein muss (* OT *):
findstr /i /m /c:"\* OT \*" "D:\Verzeichnis\*.html"
Grüße
bastla
Bitte warten ..
Mitglied: LotPings
21.05.2009 um 09:24 Uhr
Moin moin Nohouse303.

Deine Beispiele sind nicht sehr erhellend, muss das "OT" jetz in dem Kontext stehen oder ist das egal?

Findstr hat jedenfalls eine Macke bei der Optionen /L wenn der Suchbegriff auf der Kommandozeile steht.
Es wendet dann trotzfdem die RegEx Syntax an wobei mit Leerzeichen getrennte Begriffe alle einzeln zum Treffer führen.

Kommt der Suchbegrif aber aus einer Datei mit der /G:Suche.txt Option passiert dies nicht.

In Verbindung mit der /M Option "nur die Dateinamen ausgeben" hast du schon dein Ergebnis.
01.
@Echo off 
02.
(Echo Was auch immer du suchst)>Suche.txt 
03.
Findstr /M /L /G:Suche.txt *.html
Gruß
LotPings
Bitte warten ..
Mitglied: Nohouse303
21.05.2009 um 13:28 Uhr
Hallo, vielen Dank für die schnellen Antworten.
Leider geht das net.
Findstr hat wohl keine Wirkung bei htm Dateien.
Also es sind htm und nicht wie beschrieben html Dateien.

@LotPings: Normalerweise steht in dem String immer ein OK. Unter gewissen Voraussetzungen steht halt mal ein OT drin. Immer an der selben Stelle!
Gruss der Nohouse303
Bitte warten ..
Mitglied: LotPings
21.05.2009 um 14:06 Uhr
Gaanz ruhig, Wir haben einen Feiertag. Nicht aufregen LotPings. Es tut weh wenn man den Kopf auf die Tischplatte haut. Nicht nochmal machen.

Du hast drei Beispiele, alle 3 durchsuchen Dateien mit der Endung html.

Wenn es diese Dateien nicht gibt kann kener der Befehle etwas finden.

Du könntest jetzt natürlich eins der Beispiele anpassen indem du mutig das l einfach wegnimmst.

Selber denken steht nicht unter Strafe, sondern ist ausdrücklich erwünscht.

Ich weiß jetzt nicht ob ich diesen Tag noch feiern kann und du bist Schuld
Bitte warten ..
Mitglied: Nohouse303
22.05.2009 um 08:31 Uhr
Das tut mir leid, das du dir das so zu Herzen nimmst.

Ich bin zwar kein Profi, aber soviel Grips habe ich schon!

Aufjeden funktionieren eure Beispiele leider nicht!

1. findstr /i /m /c:"OT" "D:\Verzeichnis\*.htm"

2. Findstr /M /L /G:Suche.txt *.htm

Also, kann jemand noch was dazu beitragen ohne sich über mich lustig zu machen.
Bitte warten ..
Mitglied: bastla
22.05.2009 um 11:13 Uhr
Hallo Nohouse303!
Aufjeden funktionieren eure Beispiele leider nicht!
Diese Aussage sollte besser so lauten:
Aufjeden funktionieren eure Beispiele mit meinen Daten leider nicht!
Zumindest liefert bei mir für das folgende Beispiel (als .htm) gespeichert
Ich muss jede via Batch nach einen Text durchsuchen. 
 
HTML Schnipsel: 
<span class="Small">M * R+ * * OT * EZMM / / 556 / C * 2 * 5.0 607</span>
jeder der dargestellten "findstr"-Befehle das gewünschte Ergebnis ...

Kannst Du daher bitte (unter Verwendung der "< code>"-Formatierung - wie in der "Formatierungshilfe" beschrieben oder nach Auswahl von "mit Zitat" für diesen Kommentar ersichtlich) einige relevante Zeilen einer Deiner Dateien posten?

Grüße
bastla
Bitte warten ..
Mitglied: Nohouse303
22.05.2009 um 15:32 Uhr
Hallo Bastla.
hier der Anfang der Datei:

<html xmlns="http://www.w3.org/TR/REC-html40;><head><title>align ..." Protocol</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><link rel="stylesheet" href="css\bbrth.css" type="text/css"/><style type="text/css">
.page {page-break-before:always;}
</style><style MEDIA="SCREEN">
.print {display:none;}
</style><style MEDIA="PRINT">
.screen {display:none;}
</style></head><body background="" text="#000000"><div CLASS="screen"><table border="0" width="100%" cellspacing="0" cellpadding="0"><tr><td width="50%" colspan="2"><nobr><H4 style="margin-bottom:1pt"><span class="HeadlineFour">protokoll</span></H4></nobr></td><td width="50%" colspan="3" rowspan="4" align="right"><img src="logos/vaglogo.gif"/></td></tr><tr><td width="50%" colspan="2"><span class="Standard">Standard (FS)</span></td></tr><tr><td width="50%" colspan="2"><small><span class="Small">
D * R+ * * OT * EZMM / / 711 / C * 2 * 5.0 607</span></small></td></tr><tr><td width="50%" colspan="2">
.......usw.

Ich konnte es bestimmt nicht so umsetzen wie du meintest. Ich hoffe das reicht dir!

Gruss und danke der Nohouse

Ps.: Ich werde meine Formulierungen in Zukunft überdenken und präziser verfassen!
Bitte warten ..
Mitglied: bastla
22.05.2009 um 15:49 Uhr
Hallo Nohouse303!

Dann versuch es mal mit dem folgenden Batch:
01.
@echo off & setlocal 
02.
set "Verzeichnis=D:\Verzeichnis" 
03.
set "Typ=htm" 
04.
set "Liste=D:\Liste.txt" 
05.
 
06.
if exist "%Liste%" del "%Liste%" 
07.
for %%i in ("%Verzeichnis%\*.%Typ%") do type "%%i"|findstr /i /c:"\* OT \*">nul && >>"%Liste%" echo %%i
Grüße
bastla
Bitte warten ..
Mitglied: Nohouse303
22.05.2009 um 17:29 Uhr
Hallo Basta,
du kommst der Sache näher.
Findstr gibt folgenes aus
FINDSTR: Zeile 8 ist zu lang
FINDSTR: Zeile 10 ist zu lang

Bei einer zweiten Datei im Verzeichnis, wo für das OT ein OK drin steht schreibt die Batch neun mal folgendes:
FINDSTR: Zeile 7 ist zu lang

In der Liste.txt stehen beide Dateien, wobei wie gesagt nur in einer OT drin steht.
Hast du noch eine Idee?

Gruss Nohouse303
Bitte warten ..
Mitglied: bastla
22.05.2009 um 17:40 Uhr
Hallo Nohouse303!
du kommst der Sache näher.
Die Information, dass Deine Dateien "UTF-8"-codiert sind, hilft dabei ...

Versuch es mit folgender Zeile 7:
for %%i in ("%Verzeichnis%\*.%Typ%") do type "%%i"|find /i "* OT *">nul && >>"%Liste%" echo %%i
Grüße
bastla
Bitte warten ..
Mitglied: Nohouse303
22.05.2009 um 18:38 Uhr
Absolute Spitzenklasse!

Top. Ich bin mehr als begeistert.

Ich musste nur noch hinter dem OT ein Leerzeichen hinzufügen und jetzt funktionieren Deine Zeilen einwandfrei.

Ein dickes Danke!

Gruss der Nohouse303

PS.: Magst du noch kurz erklären was es mit dem UTF-8 auf sich hat bevor ich den Betrag schliesse!
Bitte warten ..
Mitglied: bastla
22.05.2009 um 19:02 Uhr
Hallo Nohouse303!
Magst du noch kurz erklären was es mit dem UTF-8 auf sich hat
Da es sich bei dieser Codierung um Unicode (siehe zB http://de.wikipedia.org/wiki/UTF-8 ) und nicht um ASCII oder ANSI handelt, kann die CMD-Shell den Inhalt der Dateien nicht unmittelbar verarbeiten - bei der Ausgabe des Dateiinhaltes mit "type" wird allerdings eine automatische Konvertierung vorgenommen, was dem dahintergeschalteten "find" das Durchsuchen dieser Ausgabe ermöglich.

Grüße
bastla
Bitte warten ..
Mitglied: Nohouse303
22.05.2009 um 19:52 Uhr
Danke für die Info.
Ich wünsche ein schönes WE.

Gruss vom Nohouse303
Bitte warten ..
Mitglied: nostream
28.06.2009 um 13:31 Uhr
Hallo und schönen Sonntag,

ich habe hier ein fast identisches Problem:

Ich habe einen Ordner mit über 1000 .html Dateien mit verschiedenen Dateinamen bei denen ich in jeder Datei nach einem bestimmten Tag suchen muss:

<META NAME="description" CONTENT=" hier steht beliebiger Text ">

anschließend müsste ich nur den Teil " hier steht belieber Text " ausgeben und nach einer weiteren HTML-Codestelle im selben .html Dokument suchen:

class="artikelpreis" id="preis" style="font-weight:bold;">30,00 &euro;</span><br>

Hier interessiert nur " 30,00 " also der Betrag in EUR.

In der Ausgabe soll also stehen " hier steht beliebiger Text " dann ein " ; " damit ich die Werte einfach in Excel in 2 Spalten importieren kann, und dann noch " 30,00 ".

Ich hab` jetzt schon mal versucht das obige Script folgendermaßen anzupassen:


@echo off & setlocal
set "Verzeichnis=C:\Dokumente und Einstellungen\nostream\Eigene Dateien\MeineSite\MeinOrdner"
set "Typ=html"
set "Liste=C:\Dokumente und Einstellungen\nostream\Eigene Dateien\MeineSite\Liste.txt"

if exist "%Liste%" del "%Liste%"
for %%i in ("%Verzeichnis%\*.%Typ%") do type "%%i"|findstr /i /c:"\* <META NAME="description" CONTENT= * >\*">nul && >>"%Liste%" echo %%i


Hiermit wollte ich das Tag mit der meta description auslesen, aber das Script bricht mit folgender Meldung ab:

Script: ...\Batch.vbs
Zeile: 1
Zeichen: 1
Fehler: Ungültiges Zeichen
Code: 800A0408
Quelle: Kompilierungsfehler in Microsoft VBScript


Ich wäre euch sehr, sehr dankbar, wenn Ihr das Skript zum laufen bringen würdet, da ansonten alle Infos von Hand aus den über 1000 .html Dateien herauskopiert werden müssen.

Vielen Dank schonmal,
nostream
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch: Auslesen von Dateinamen aus Text und Kopieren dieser.
gelöst Frage von gumpo03Batch & Shell2 Kommentare

Hallo. Ich sitze seit ungefähr einer Stunde an einem Problem, dass ich gern endlich lösen würde: Ich habe eine ...

JavaScript
Datumabhängiger Text in HTML anzeigen
gelöst Frage von adm2015JavaScript4 Kommentare

Hallo Zusammen, ich bin verzweifelt auf der Suche nach einem JavaScript, welches einen bestimmten Text zu einem bestimmten Datum ...

HTML
Mit HTML Datei eine Textdatei auslesen
gelöst Frage von MaffiHTML7 Kommentare

hallo, ein Kunde möchte einen Lauftext auf einer Anzeigetafel, welche eine HTML Datei anzeigt regelmäßig und einfach verändern. Ich ...

Windows Userverwaltung
Ordnergruppenfreigaben in CSV oder HTML auslesen
gelöst Frage von JafThomasWindows Userverwaltung3 Kommentare

Hallo zusammen, ich habe eine Excelliste eines Dienstleisters erhalten die mit den folgenden Daten unserer Fileserver gefüllt werden soll: ...

Neue Wissensbeiträge
Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 8 StundenInternet2 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 12 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 12 StundenWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 15 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

Windows Server
Anmeldung direkt am DC nicht möglich
Frage von ThomasGrWindows Server15 Kommentare

Hallo, ich habe bei unserem Server 2016 Standard ein Problem. Keine Ahnung wie das auf einmal passiert ist. Ich ...

TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte14 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...