La secuencia de comandos por lotes obtiene el sitio html y analiza el contenido (sin wget, curl u otra aplicación externa)

Necesito trabajar solo con la funcionalidad de Windows CMD. Necesito dos vars / strings de un sitio web para usar en el batchscript para validar acciones con él. Para no hacerlo demasiado simple, este sitio web también necesita autenticación.

Encontré esto en alguna parte:

@set @x=0 /* :: ChkHTTP.cmd @echo off setlocal set "URL=http://www.google.com" cscript /nologo /e:jscript "%~f0" %URL% | find "200" > nul if %ErrorLevel% EQU 0 ( echo Web server ok % Put your code here % ) else ( echo Web server error reported ) goto :EOF JScript */ var x=new ActiveXObject("Microsoft.XMLHTTP"); x.open("GET",WSH.Arguments(0));x.send(); while (x.ReadyState!=4) {WSH.Sleep(50)}; WSH.Echo(x.status) 

Pero no estoy seguro de si es posible obtener el contenido del sitio de esta manera en lugar de la respuesta de estado y más no sé cómo implementar la autenticación del sitio web para esto.

El código anterior no funciona correctamente, ya que siempre producirá un error debido a la tubería, pero esto parecía más cercano a mis necesidades de analizar el contenido que esperaba.

    Solo he usado wget para buscar contenido web desde un script por lotes de Windows. ¡Usar una XHR a través de JScript fue una idea fantástica!

    Pero el script que intentas saquear parece estar destinado a verificar si un servidor web está respondiendo, no para buscar contenido.

    Con algunas modificaciones, puede usarlo para buscar una página web y hacer el procesamiento que necesite.

     @if (@a==@b) @end /* :: fetch.bat  :: fetch a web page @echo off setlocal if "%~1"=="" goto usage echo "%~1" | findstr /i "https*://" >NUL || goto usage set "URL=%~1" for /f "delims=" %%I in ('cscript /nologo /e:jscript "%~f0" "%URL%"') do ( rem process the HTML line-by-line echo(%%I ) goto :EOF :usage echo Usage: %~nx0 URL echo for example: %~nx0 http://www.google.com/ echo; echo The URL must be fully qualified, including the http:// or https:// goto :EOF JScript */ var x=new ActiveXObject("Microsoft.XMLHTTP"); x.open("GET",WSH.Arguments(0),true); x.setRequestHeader('User-Agent','XMLHTTP/1.0'); x.send(''); while (x.readyState!=4) {WSH.Sleep(50)}; WSH.Echo(x.responseText);