Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
Récupérer le contenu texte d'une page web
Auteur Message
Répondre en citant
Message Récupérer le contenu texte d'une page web 
Bonjour/Bonsoir,

Je teste des trucs en Batch, et pour l'un de mes programmes, j'aimerais instaurer un système de mise à jour automatique. Pour que cela fonctionne, j'aurais besoin de récupérer le contenu texte d'une page web. Je vous explique.


A chaque lancement du Batch, le script récupère le texte affiché sur une page web (une page "raw" de pastebin pour les connaisseurs).

Le principe de cette page, c'est que je peux y faire afficher une information, ici la version du script la plus récente.

Ca ressemble à ça : https://pastebin.com/raw/X6XCqXSb


Lorsque le script a récupéré cette valeur, il la compare avec la valeur présente dans des fichiers de sauvegarde. Si celle-ci est différente, il récupère le contenu d'une autre page "raw" de pastebin, dans laquelle est contenue le code de la nouvelle version. Il met ce code dans le "script%newversion%.bat" et le lance.

Je ne sais pas si j'ai été clair, alors posez-moi des questions si vous n'avez pas compris Okay


A+ !




______________________________________________________
Pourquoi faire compliqué lorsqu'on peut faire encore plus compliqué ?
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message Récupérer le contenu texte d'une page web 
Salut Mr. Green

Tu peux tous simplement utiliser powershell Okay
Pour télécharger une page en powershell (dans un script batch), il faut faire comme cela :

Code:
powershell -noprofile -command "$client = new-object System.Net.WebClient;$client.DownloadFile('https://pastebin.com/raw/X6XCqXSb','monfichier.txt')"




Donc je t'ai fait un ptit code en utilisant ce principe :
Code:
@echo off
chcp 28591 > nul
setlocal EnableDelayedExpansion EnableExtensions


if "%~2"=="1" (
  cls
  echo;Le Programme mis à jour avec succès
  echo;
)


call :UpDate


echo;EXECUTION DU PROG ICI



pause>nul&exit
:UpDate
rem By Flammrock -->
set currentVersion=0.5
powershell -noprofile -command "$client = new-object System.Net.WebClient;$client.DownloadFile('https://pastebin.com/raw/X6XCqXSb','%temp%\tmp')"
set /p lastVersion=< "%temp%\tmp"
if not "%currentVersion%"=="%lastVersion%" (
  echo;Mise à jour détecté ^^!^^!
  echo;Téléchargment..
  powershell -noprofile -command "$client = new-object System.Net.WebClient;$client.DownloadFile('https://pastebin.com/raw/NZjF6jHS','script%lastVersion%.bat')"
  echo;Installation..
  call "script%lastVersion%.bat" "" 1
  exit
)
goto :eof


Voilà j'espère t'avoir aidé Mr. Green




______________________________________________________
la vie est trop courte pour retirer le périphérique USB en toute sécurité...
Si la statue de la liberté lève le bras depuis 125 ans, c'est parce qu'elle cherche du réseau sur son Blackberry Torches...
Grâce à mon nouveau correcteur automatiste sur mon téléphage, je ne fais plus aucune faute d'orthodontie.
Quelqu'un a t il déjà demandé au drapeau japonais ce qu'il enregistre depuis tout ce temps ?
Visiter le site web du posteur
Répondre en citant
Message Récupérer le contenu texte d'une page web 
Sujet résolu ?

PS:
je crois que il y a la même solution pour le VBS mais je ne l'ai plus.
J'ai trouvé un similaire mais il faut l'optimiser et réduire le nombre de lignes : https://github.com/cataska/factor/blob/master/build-support/http-get.vbs




______________________________________________________


cliquer sur un des liens n'est pas dangereux
Ancien site,Nouveau site
Mon site de scan
Vous êtes le
visiteur
Chaine Youtube:
Visiter le site web du posteur Skype
Répondre en citant
Message Récupérer le contenu texte d'une page web 
Flammrock a écrit:
Salut Mr. Green

Tu peux tous simplement utiliser powershell Okay
Pour télécharger une page en powershell (dans un script batch), il faut faire comme cela :

Code:
powershell -noprofile -command "$client = new-object System.Net.WebClient;$client.DownloadFile('https://pastebin.com/raw/X6XCqXSb','monfichier.txt')"




Donc je t'ai fait un ptit code en utilisant ce principe :
Code:
@echo off
chcp 28591 > nul
setlocal EnableDelayedExpansion EnableExtensions


if "%~2"=="1" (
  cls
  echo;Le Programme mis à jour avec succès
  echo;
)


call :UpDate


echo;EXECUTION DU PROG ICI



pause>nul&exit
:UpDate
rem By Flammrock -->
set currentVersion=0.5
powershell -noprofile -command "$client = new-object System.Net.WebClient;$client.DownloadFile('https://pastebin.com/raw/X6XCqXSb','%temp%\tmp')"
set /p lastVersion=< "%temp%\tmp"
if not "%currentVersion%"=="%lastVersion%" (
  echo;Mise à jour détecté ^^!^^!
  echo;Téléchargment..
  powershell -noprofile -command "$client = new-object System.Net.WebClient;$client.DownloadFile('https://pastebin.com/raw/NZjF6jHS','script%lastVersion%.bat')"
  echo;Installation..
  call "script%lastVersion%.bat" "" 1
  exit
)
goto :eof


Voilà j'espère t'avoir aidé Mr. Green


Merci beaucoup, ça marche à merveille !




______________________________________________________
Pourquoi faire compliqué lorsqu'on peut faire encore plus compliqué ?
Répondre en citant
Message Récupérer le contenu texte d'une page web 
logan T a écrit:
Sujet résolu ?

PS:
je crois que il y a la même solution pour le VBS mais je ne l'ai plus.
J'ai trouvé un similaire mais il faut l'optimiser et réduire le nombre de lignes : https://github.com/cataska/factor/blob/master/build-support/http-get.vbs




Oui, comme le dis Logan t, il est possible de le faire en VBScript et beaucoup d'autres comme le C# qui utilise les classes .NET tout comme le powershell.
J'ai préféré partagé le meilleur Mr. Green

Là je vais mettre la version VBScript et powershell du même script :


Pour télécharger un fichier distant sur un serveur web http, on peut procéder ainsi avec le VBScript :
Code:
(
  echo;Set Args=wscript.arguments
  echo;if args.count<2 then wscript.quit
  echo;srce=args^(0^)
  echo;dest=args^(1^)
  echo;Set HTTP=CreateObject^("MSXML2.XMLHTTP"^)
  echo;HTTP.Open "GET",srce,False
  echo;HTTP.Send
  echo;Set Stream=CreateObject^("ADODB.Stream"^)
  echo;Stream.Type=1
  echo;Stream.Open
  echo;Stream.Write HTTP.ResponseBody
  echo;Stream.SaveToFile dest,2
)> update.vbs
start /wait cscript.exe update.vbs "https://pastebin.com/raw/X6XCqXSb" "monfichier.txt"





Donc je t'ai fait un ptit code en utilisant ce principe :
Code:
@echo off
chcp 28591 > nul
setlocal EnableDelayedExpansion EnableExtensions
 
 
if "%~2"=="1" (
  cls
  echo;Le Programme mis à jour avec succès
  echo;
)
 
 
call :UpDate
 
 
echo;EXECUTION DU PROG ICI
 
 
 
pause>nul&exit
:UpDate
rem By Flammrock -->
set currentVersion=0.5
(
  echo;Set Args=wscript.arguments
  echo;if args.count<2 then wscript.quit
  echo;srce=args^(0^)
  echo;dest=args^(1^)
  echo;Set HTTP=CreateObject^("MSXML2.XMLHTTP"^)
  echo;HTTP.Open "GET",srce,False
  echo;HTTP.Send
  echo;Set Stream=CreateObject^("ADODB.Stream"^)
  echo;Stream.Type=1
  echo;Stream.Open
  echo;Stream.Write HTTP.ResponseBody
  echo;Stream.SaveToFile dest,2
)> update.vbs
start /wait cscript.exe update.vbs "https://pastebin.com/raw/X6XCqXSb" "%temp%\tmp"
set /p lastVersion=< "%temp%\tmp"
if not "%currentVersion%"=="%lastVersion%" (
  echo;Mise à jour détecté ^^!^^!
  echo;Téléchargment..
  start /wait cscript.exe update.vbs "https://pastebin.com/raw/NZjF6jHS" "script%lastVersion%.bat"
  echo;Installation..
  del /q update.vbs
  call "script%lastVersion%.bat" "" 1
  exit
)
goto :eof



Pour télécharger un fichier distant sur un serveur web http, on peut procéder ainsi avec le powershell :
Code:
powershell -noprofile -command "$client = new-object System.Net.WebClient;$client.DownloadFile('https://pastebin.com/raw/X6XCqXSb','monfichier.txt')"




Donc je t'ai fait un ptit code en utilisant ce principe :
Code:
@echo off
chcp 28591 > nul
setlocal EnableDelayedExpansion EnableExtensions


if "%~2"=="1" (
  cls
  echo;Le Programme mis à jour avec succès
  echo;
)


call :UpDate


echo;EXECUTION DU PROG ICI



pause>nul&exit
:UpDate
rem By Flammrock -->
set currentVersion=0.5
powershell -noprofile -command "$client = new-object System.Net.WebClient;$client.DownloadFile('https://pastebin.com/raw/X6XCqXSb','%temp%\tmp')"
set /p lastVersion=< "%temp%\tmp"
if not "%currentVersion%"=="%lastVersion%" (
  echo;Mise à jour détecté ^^!^^!
  echo;Téléchargment..
  powershell -noprofile -command "$client = new-object System.Net.WebClient;$client.DownloadFile('https://pastebin.com/raw/NZjF6jHS','script%lastVersion%.bat')"
  echo;Installation..
  call "script%lastVersion%.bat" "" 1
  exit
)
goto :eof




Voilà Mr. Green



EDIT :

Froxil a écrit:
Flammrock a écrit:
Salut Mr. Green

Tu peux tous simplement utiliser powershell Okay
Pour télécharger une page en powershell (dans un script batch), il faut faire comme cela :

Code:
powershell -noprofile -command "$client = new-object System.Net.WebClient;$client.DownloadFile('https://pastebin.com/raw/X6XCqXSb','monfichier.txt')"




Donc je t'ai fait un ptit code en utilisant ce principe :
Code:
@echo off
chcp 28591 > nul
setlocal EnableDelayedExpansion EnableExtensions


if "%~2"=="1" (
  cls
  echo;Le Programme mis à jour avec succès
  echo;
)


call :UpDate


echo;EXECUTION DU PROG ICI



pause>nul&exit
:UpDate
rem By Flammrock -->
set currentVersion=0.5
powershell -noprofile -command "$client = new-object System.Net.WebClient;$client.DownloadFile('https://pastebin.com/raw/X6XCqXSb','%temp%\tmp')"
set /p lastVersion=< "%temp%\tmp"
if not "%currentVersion%"=="%lastVersion%" (
  echo;Mise à jour détecté ^^!^^!
  echo;Téléchargment..
  powershell -noprofile -command "$client = new-object System.Net.WebClient;$client.DownloadFile('https://pastebin.com/raw/NZjF6jHS','script%lastVersion%.bat')"
  echo;Installation..
  call "script%lastVersion%.bat" "" 1
  exit
)
goto :eof


Voilà j'espère t'avoir aidé Mr. Green


Merci beaucoup, ça marche à merveille !


De rien Mr. Green
Si tu as d'autres questions n'hésite surtout pas Okay




______________________________________________________
la vie est trop courte pour retirer le périphérique USB en toute sécurité...
Si la statue de la liberté lève le bras depuis 125 ans, c'est parce qu'elle cherche du réseau sur son Blackberry Torches...
Grâce à mon nouveau correcteur automatiste sur mon téléphage, je ne fais plus aucune faute d'orthodontie.
Quelqu'un a t il déjà demandé au drapeau japonais ce qu'il enregistre depuis tout ce temps ?
Visiter le site web du posteur
Répondre en citant
Message Récupérer le contenu texte d'une page web 
Une explication un peu plus complète :

http://batch.xoo.it/t4371-VBS-BAT-Faire-un-syst-me-d-update-automatique.htm

Okay




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Message Récupérer le contenu texte d'une page web 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch