Connexion

Récupérer mon mot de passe

Qui est en ligne ?
Il y a en tout 1 utilisateur en ligne :: 0 Enregistré, 0 Invisible et 1 Invité

Aucun

Le record du nombre d'utilisateurs en ligne est de 21 le Jeu 17 Oct 2013, 13:40
Derniers sujets
Flux RSS



Flag Counter
Partenaires

[VBS/BAT/PowerShell] Faire un système d'update automatique

Voir le sujet précédent Voir le sujet suivant Aller en bas

[VBS/BAT/PowerShell] Faire un système d'update automatique

Message par Sachadee le Jeu 15 Jan 2015, 20:43

Je vais vous expliquer aujourd'hui comment faire un système d'update automatique pour vos codes.
Et sans passer par le FTP (fonctionnelle mais trop long).

Le principe :

On va placer sur notre serveur dans un repertoire nommé version un fichier version.txt (ou html) contenant juste la valeur de la dernière version de notre programme :

version.txt

13

On aura donc une URL :

http://VotreHost/version/version.txt

qu'il nous suffit d'aller lire avec une méthode GET.

Comme les exemples sont plus parlant que les longs discours.
J'ai créer sur mon serveur un fichier version.txt et 1 version.html contenant les 2 la valeur 13 (pour 1.3)

Je vais créer une petite commande en VBS qui va récuperer cette valeur sur mon serveur dont l'url est :

http://ftpcrypt.byethost24.com/version/version.txt

ou

http://ftpcrypt.byethost24.com/version/version.html

GetVersion.vbs

Code:
Dim o
Set o = CreateObject("MSXML2.XMLHTTP")
o.open "GET", "http://ftpcrypt.byethost24.com/version/version.txt", False
o.send
wscript.echo o.responseText

Que vous pouvez tester tel quel, Il devrait vous ouvrir une message box avec la valeur 13 dedans.

Maintenant pour récuperer et tester cette valeur dans notre code BAT on va utiliser une simple boucle FOR qui appelle notre GetVersion.vbs
ainsi qu'un code Powershell pour faire le download direct (On pourrait le faire avec VBS également, mais il faut varier les plaisirs) :

Code:
::TestGetVersion
::SachaDee 2015
@echo off

::On définie la version du programme en cours d'utilisation
set $versionAct=12

:: On récupère la dernière version disponible sur le serveur
:: en appelant notre VBS :
For /f %%a in ('cscript GetVersion.vbs') do set "$versionDisp=%%a"

Echo Version actuelle   : %$VersionAct%
Echo Version Disponible : %$VersionDisp%

:: On test les 2 valeurs

If %$VersionDisp% GTR %$VersionAct% goto:update
echo Votre Version est à jour.
exit/b

:Update
set /p $R=Voulez vous t‚lecharger la version %$VersionDisp% [o/n] :

::Ici on fait le download direct grace à Powershell

if /i %$R%==o (
for /f "delims=:" %%a In ('findstr ^/Bn "@PS" %~nx0') do Set /A Line=%%a
for /f  "delims=" %%x in  ('more +%Line% %~nx0  ^| powershell -c -') do echo.)
if exist version13.txt Echo Version13.txt t‚lecharg‚ avec succes
exit/b

::Le code powershell pour le download direct
@PS
$client = new-object System.Net.WebClient
$client.DownloadFile("http://ftpcrypt.byethost24.com/download/version13.txt","version13.txt")

Voilà vous pouves tester tout est fonctionnel. Et vous voyex que c'est hyper rapide pour récuperer le 13 sur le serveur (En FTP ça prendrait bien 3 fois plus de temps).

Il vous faut naturellement tenir à jour le numéro de version sur votre serveur ainsi que le programme actualisé.
Pour avoir toujours le même lien de download de la dernière version garder toujours le même nom pour votre programme.

Enjoy !!!

 :ok:

_________________
@SachaDee
avatar
Sachadee
Admin
Admin

Mensagens : 591
Data de inscrição : 04/06/2013

http://bbat.forumeiro.com

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum