Bat que extraiga un fragmento de un .txt a otro archivo
Un servidor web me facilita una información en HTML que descargo mediante wget con la siguiente orden desde uno de mis 2 equipos ( ambos son Windows7SP1, uno x86 Home Premium y el otro x64 Professional que migraré a Windows 10 a principios del año que viene):
Wget -Oinforme.txt "http://www.servidorDeEjemplo.com/InformeNecesario.html/"
El archivo "informe.txt" descargado contiene más de 2000 líneas de las cuales solo me interesa una que tiene una dirección web que tiene el archivo fuente que realmente necesito descargar. El problema es que este servicio genera una dirección aleatoria cada vez que se utiliza, por lo que no es posible apuntar con wget hacia una url concreta. He conseguido asilar las 2000 líneas que no necesito con este código:
type informe.txt | find /i "caducidad" >link.txt
Desgraciadamente, la línea que necesito no comienza al inicio de la línea y se cuelan más caracteres, tanto al inicio de la línea como al final. Para colmo, no puedo filtrar por "http", ya que el archivo "informe.txt" descargado contiene otros enlaces varios los cuales no necesito, además que no siempre es la misma línea (unas veces es la 2105, otras la 1783...) ni la cadena deseada tiene la misma longitud o sigue algún tipo de patrón. Lo único que hace reconocible a esta cadena es la palabra que he puesto en el código anterior. Para acabar de complicarlo, la URL que necesito tiene el símbolo igual en un par de ocasiones. Esto es lo que obtengo al usar el comando Type y filtrarlo al archivo "Link.txt":
<iframe width="1" height="1" frameborder="0" src="http://reports.Servidor.com/Informes/caducidad=Num3r0Al34t0r10;urlget=Dir3cci0nAle4t0r1a/Test/informeNombreAleatorio.zip"></iframe>
Una vez obtenga el archivo limpio, la idea es devolverlo al wget mediante un bat para poder bajar lo que necesito y así realizar toda esta labor de forma desatendida mediante el comando:
Wget -i link.txt
Resumiendo,
He creado Informe.bat que funciona perfectamente, excepto la parte de generar una URL limpia que pasarle al wget:
@echo off ::Nombre de este archivo Informe.bat ::Obtiene el enlace de una URL externa, crea un txt y lo pasa al wget. Echo. Echo Obteniendo la URL del informe. Espere por favor... Wget -Oinforme.txt "http://www.servidorDeEjemplo.com/InformeNecesario.html/" ::Ejecuta el wget desde la misma carpeta donde se encuentra Informe.bat, ::Conecta a la URL del servidor y descarga el archivo HTML con la info ::Necesaria, convirtiendo el HTML a TXT para manejarlo mejor. Type informe.txt | find /i "caducidad" >link.txt del informe.txt ::Type quita toda la morralla del fichero Informe.txt dejando solo la ::URL necesaria dentro del archivo link.txt ::Es aqui donde falla mi proceso! ::Finalmente se borra el archivo Informe.txt por no ser necesario. Cls Echo Descargando el informe. Puede tardar algunos minutos... Wget -i link.txt del link.txt ::Una vez la URL es correcta, se vuelve a ejecutar wget indicando el ::¿Archivo link.txt que contiene el enlace para descargar el .zip que necesito.
A alguien se le ocurre alguna solución para ello?