Zeichenfolge aus HTML-Datei
Hallo,
ich suche eine Möglichkeit mit CMD-Batch (kein PowerShell) aus einer index.html den Dateinamen auszulesen.
Der eigentliche Name in der index.html ist Dateiname-1.1.0-Win64.zip
FINDSTR /i /r /c:"Dateiname-.*Win64.zip" /c:"Win64.zip.*Dateiname-" index.html
gibt mir zwar die Zeile aus, aber ich möchte nur den gesuchten Dateiname ohne den ganzen HTML-Code davor und danach.
Wie kann ich das filtern, damit ich den Dateiname in eine Variable setzen kann?
---
supertux
ich suche eine Möglichkeit mit CMD-Batch (kein PowerShell) aus einer index.html den Dateinamen auszulesen.
Der eigentliche Name in der index.html ist Dateiname-1.1.0-Win64.zip
FINDSTR /i /r /c:"Dateiname-.*Win64.zip" /c:"Win64.zip.*Dateiname-" index.html
gibt mir zwar die Zeile aus, aber ich möchte nur den gesuchten Dateiname ohne den ganzen HTML-Code davor und danach.
Wie kann ich das filtern, damit ich den Dateiname in eine Variable setzen kann?
---
supertux
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 8055528870
Url: https://administrator.de/contentid/8055528870
Ausgedruckt am: 22.11.2024 um 07:11 Uhr
13 Kommentare
Neuester Kommentar
Hi,
hilft
weiter?
Der Befehl findstr sucht nach dem Dateinamen in der HTML-Datei und gibt die Zeile aus, in der der Dateiname gefunden wurde. Der Befehl for iteriert über die Ausgabe von findstr und setzt den Dateinamen in die Variable filename.
Um den Dateinamen in einer Datei speichern zu können:
hilft
for /f "delims=" %%i in ('findstr /i /r /c:"Dateiname-.*Win64.zip" /c:"Win64.zip.*Dateiname-" index.html') do set filename=%%i
Der Befehl findstr sucht nach dem Dateinamen in der HTML-Datei und gibt die Zeile aus, in der der Dateiname gefunden wurde. Der Befehl for iteriert über die Ausgabe von findstr und setzt den Dateinamen in die Variable filename.
Um den Dateinamen in einer Datei speichern zu können:
echo %filename% > filename.txt
@echo off
set "file=d:\index.html"
for /f "delims=" %%a in ('powershell -EP Bypass -C "(sls '%file%' -Pattern 'Dateiname-.*?Win64\.zip').Matches.Value"') do set "filename=%%a"
echo %filename%
@echo off
set "url=https://administrator.de/forum/zeichenfolge-aus-html-datei-8055528870.html"
for /f "delims=" %%a in ('powershell -EP Bypass -C "[regex]::match((iwr '%url%' -UseBasicParsing).Content,'(?i)Dateiname-.*?Win64\.zip').Value"') do set "filename=%%a"
echo %filename%
Das ist natürlich noch besser
Falls du diese Datei dann auch herunterladen willst könntest du das natürlich auch noch gleich miterledigen, nur zur Info ...Einfach mal mit Powershell beschäftigen, dann braucht es auch kein 80er batch mehr .
Auch kein Problem , aber wieso nicht gleich ein Package Manager benutzen?? Da reicht ein:
zum installieren
und zum upgraden
https://community.chocolatey.org/packages/IrfanView#upgrade
fertsch.
zum installieren
choco install irfanview
und zum upgraden
choco upgrade irfanview
https://community.chocolatey.org/packages/IrfanView#upgrade
fertsch.
Ich möchte das nicht gleich installieren sondern die Programme in meine Install-ISO einbinden.
Die Packages kannst du dort auch so runterladen, aber egal ...Hier Powershell bsp. für Irfanview 64bit
$outpath = 'D:\temp'
$fname = [regex]::match((iwr 'https://www.irfanview.com/' -UseBasicParsing).Content,'(?i)iview.*?x64_setup\.exe').Value
$rid = [regex]::match((iwr "https://www.fosshub.com/IrfanView.html?dwl=$fname" -UseBasicParsing),'(?i)(?<="r":")[^"]+').Value
iwr (irm 'https://api.fosshub.com/download/' -Method Post -ContentType 'application/json' -Body (@{fileName=$fname;projectId='5b8d1f5659eee027c3d7883a';projectUri='IrfanView.html';releaseId=$rid;source='CF'} | ConvertTo-JSON)).data.url -OutFile "$outpath\$fname"
@echo off
set "outpath=D:\download"
powershell -EP Bypass -C "$fname = [regex]::match((iwr 'https://www.irfanview.com/' -UseBasicParsing).Content,'(?i)iview.*?x64_setup\.exe').Value;$rid = [regex]::match((iwr ('https://www.fosshub.com/IrfanView.html?dwl='+$fname) -UseBasicParsing),'(?i)(?<=\x22r\x22:\x22)[^\x22]+').Value;iwr (irm 'https://api.fosshub.com/download/' -Method Post -ContentType 'application/json' -Body (@{fileName=$fname;projectId='5b8d1f5659eee027c3d7883a';projectUri='IrfanView.html';releaseId=$rid;source='CF'} | ConvertTo-JSON)).data.url -OutFile (join-path '%outpath%' $fname)"
Browser Developer Tools (F12) Netzwerkanalyse ...
Die Project-ID wird vermutlich sich nicht ändern, aber die Releaseid?
Musst du schauen ob sie sich ändert,... (edit) Codes sind oben dazu ergänzt, sie lesen jetzt auch die releaseID aus.