Bestimtme Links aus Quelltext in txt speichern.
Hallo,
da ich nun nach einer echten Ewigkeit noch keine Lösung gefunden habe, bitte ich hier mal um Hilfe!
Ich habe eine .txt (a.txt) datei die einen Ursprünglichen html-Quelltext enthält. Aus dieser Datei sollen nun mittels Batch alle Links, die mit "http://www.webseite.de/six/src/" beginnen ausgelesen und in eine neue Textdatei gespeichert werden (1 Link Pro Zeile). Einige Beispiele wären:
http://www.webseite.de/six/src/135255765397.jpg
http://www.webseite.de/six/src/135257344398.jpg
http://www.webseite.de/six/src/135255799129.jpg
Sprich: Der Link bleibt gleich, bis auf die Zahl.
Die Links liegen alle auf folgende Weise in der Ausgangsdatei vor:
... <a target="_blank" href="/out.php?url=http://www.webseite.de/six/src/135255765397.jpg;> <span id ...
Nochmal im kurzdurchlauf:
Textdatei auslesen und das was zwischen
" <a target="_blank" href="/out.php?url= "
und
" "> <span id ... "
steht in eine neue datei kopieren. -> b.txt
Mit
findstr /c:"http://www.webseite.de/six/src/" a.txt > b.txt
konnte ich bereits alle zeilen die einen Link enthalten wie gewünscht auslesen. Aber den Rest bekomme ich leider nicht weg. Gibt es einfachere Lösungswege IN BATCH?
Danke und liebe Grüße,
Thomas.
da ich nun nach einer echten Ewigkeit noch keine Lösung gefunden habe, bitte ich hier mal um Hilfe!
Ich habe eine .txt (a.txt) datei die einen Ursprünglichen html-Quelltext enthält. Aus dieser Datei sollen nun mittels Batch alle Links, die mit "http://www.webseite.de/six/src/" beginnen ausgelesen und in eine neue Textdatei gespeichert werden (1 Link Pro Zeile). Einige Beispiele wären:
http://www.webseite.de/six/src/135255765397.jpg
http://www.webseite.de/six/src/135257344398.jpg
http://www.webseite.de/six/src/135255799129.jpg
Sprich: Der Link bleibt gleich, bis auf die Zahl.
Die Links liegen alle auf folgende Weise in der Ausgangsdatei vor:
... <a target="_blank" href="/out.php?url=http://www.webseite.de/six/src/135255765397.jpg;> <span id ...
Nochmal im kurzdurchlauf:
Textdatei auslesen und das was zwischen
" <a target="_blank" href="/out.php?url= "
und
" "> <span id ... "
steht in eine neue datei kopieren. -> b.txt
Mit
findstr /c:"http://www.webseite.de/six/src/" a.txt > b.txt
konnte ich bereits alle zeilen die einen Link enthalten wie gewünscht auslesen. Aber den Rest bekomme ich leider nicht weg. Gibt es einfachere Lösungswege IN BATCH?
Danke und liebe Grüße,
Thomas.
Please also mark the comments that contributed to the solution of the article
Content-Key: 207179
Url: https://administrator.de/contentid/207179
Printed on: May 4, 2024 at 08:05 o'clock
3 Comments
Latest comment
Hallo Subrosa20 und willkommen im Forum!
Im einfachsten Fall etwa so:
Da Deiner Darstellung nicht so ganz genau zu entnehmen ist, ob nach dem Link nun ein Semikolon, ein Leerzeichen oder gleich ein ">" folgt, habe ich alle 3 Möglichkeiten berücksichtigt ...
Grüße
bastla
Im einfachsten Fall etwa so:
@echo off & setlocal
del b.txt 2>nul
for /f "delims=" %%i in ('findstr /c:"http://www.webseite.de/six/src/" a.txt') do set "Zeile=%%i" & call :ProcessLine
goto :eof
:ProcessLine
for /f "delims==; >" %%a in ("%Zeile:*url=%") do >>b.txt echo %%a
goto :eof
Grüße
bastla
Hallo Subrosa20,
ein Vorschlag mit GNU sed:
Gruss!
ein Vorschlag mit GNU sed:
@echo off&setlocal
(for /f %%i in (
'sed "s/.*=\(.*\);.;.*/\1/" file'
) do (
echo(%%i
))>out.txt
Gruss!
und für die Powershell-Fraktion:
function Get-Matches($Pattern,$groupNumber = 0) {
begin { $regex = New-Object Regex($pattern) }
process { foreach ($match in ($regex.Matches($_))) { ([Object[]]$match.Groups)[$groupNumber].Value } }
}
$Textdatei = "D:\a.txt"
get-content $Textdatei | Get-Matches "(?i)\bhttp://www.webseite.de/six/src/[0-9]*\.jpg"