supertux
Goto Top

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

Content-Key: 8055528870

Url: https://administrator.de/contentid/8055528870

Printed on: April 27, 2024 at 23:04 o'clock

Member: Cleanairs
Cleanairs Aug 05, 2023 at 16:00:58 (UTC)
Goto Top
Hi,

hilft
for /f "delims=" %%i in ('findstr /i /r /c:"Dateiname-.*Win64.zip" /c:"Win64.zip.*Dateiname-" index.html') do set filename=%%i  
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:

echo %filename% > filename.txt
Mitglied: 7907292512
Solution 7907292512 Aug 05, 2023 updated at 17:00:57 (UTC)
Goto Top
@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%
Sowas kannst du aber auch gleich aus dem Web auslesen ohne erst den Umweg überflüssigen Weg über einer Datei zu gehen ...
Member: supertux
supertux Aug 05, 2023 at 17:09:01 (UTC)
Goto Top
Hallo,

ich erhalte mit der index.html den Fehler "<" kann syntaktisch an dieser Stelle nicht verarbeitet werden.

Wenn ich es mir eine Textdatei versuche, funktioniert es.
Member: supertux
supertux Aug 05, 2023 updated at 17:24:31 (UTC)
Goto Top
Zitat von @7907292512:

Danke, funktioniert face-smile

Wenn ich es für das Web nutzen möchte, einfach die URL eintragen?
Mitglied: 7907292512
7907292512 Aug 05, 2023 at 17:28:47 (UTC)
Goto Top
Zitat von @supertux:
Wenn ich es für das Web nutzen möchte, einfach die URL eintragen?
@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%
Member: supertux
supertux Aug 05, 2023 at 17:44:58 (UTC)
Goto Top
Zitat von @7907292512:

Das ist natürlich noch besser, funktioniert face-smile
Vielen Dank!
Mitglied: 7907292512
7907292512 Aug 05, 2023 updated at 17:51:29 (UTC)
Goto Top
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 face-wink.
Member: supertux
supertux Aug 05, 2023 at 18:06:46 (UTC)
Goto Top
Das Abfragen der Version (z.b Irfanview.com oder Fosshub.com) funktioniert, der richtige Downloadlink wird
dann zum Problem face-sad
Mitglied: 7907292512
7907292512 Aug 05, 2023 updated at 18:24:40 (UTC)
Goto Top
Auch kein Problem , aber wieso nicht gleich ein Package Manager benutzen?? Da reicht ein:
zum installieren
choco install irfanview
und zum upgraden
choco upgrade irfanview
https://community.chocolatey.org/packages/IrfanView#upgrade

fertsch.
Member: supertux
supertux Aug 05, 2023 at 18:35:29 (UTC)
Goto Top
Ich möchte das nicht gleich installieren sondern die Programme in meine Install-ISO einbinden.
Mitglied: 7907292512
7907292512 Aug 05, 2023 updated at 19:31:36 (UTC)
Goto Top
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"  
Kannst du natürlich auch als Batch wie oben zusammenbauen.
@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)"  
Member: supertux
supertux Aug 05, 2023 at 19:00:27 (UTC)
Goto Top
Wie kommst du an die FossHub Project-ID?
Die Project-ID wird vermutlich sich nicht ändern, aber die Releaseid?
Mitglied: 7907292512
7907292512 Aug 05, 2023, updated at Aug 06, 2023 at 04:59:24 (UTC)
Goto Top
Zitat von @supertux:
Wie kommst du an die FossHub Project-ID?
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.