Précédent   Forum des professionnels en informatique > Autres langages > Général Visual Basic 6 et VBScript > VBScript
VBScript Le forum d'entraide sur VBScript. Avant de poster -> La FAQ VBScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/01/2012, 03h56   #1
Invité régulier
 
Homme
Inscription : juillet 2011
Messages : 33
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juillet 2011
Messages : 33
Points : 8
Points : 8
Par défaut VBS Téléchargement application

Bonjour à tous voilà mon idée de base...

Télécharger un ensemble d'application (exe) provenant de lien html vers un répertoire X de mon ordi...Actuellement j'ai un script qui le fait mais auquel j'aimerais modifier quelques éléments.

De base le script

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 
HTTPDownload "http://le_lien_du.exe" , "C:\le\répertoire\Logiciels\1\"
 
Sub HTTPDownload( myURL, myPath )
 
' Written by Rob van der Woude
' http://www.robvanderwoude.com
 
    ' Standard housekeeping
    Dim i, objFile, objFSO, objHTTP, strFile, strMsg
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
 
    ' Create a File System Object
    Set objFSO = CreateObject( "Scripting.FileSystemObject" )
 
    ' Check if the specified target file or folder exists,
    ' and build the fully qualified path of the target file
    If objFSO.FolderExists( myPath ) Then
        strFile = objFSO.BuildPath( myPath, Mid( myURL, InStrRev( myURL, "/" ) + 1 ) )
    ElseIf objFSO.FolderExists( Left( myPath, InStrRev( myPath, "\" ) - 1 ) ) Then
        strFile = myPath
    Else
        WScript.Echo "ERROR: Target folder not found."
        Exit Sub
    End If
 
    ' Create or open the target file
    Set objFile = objFSO.OpenTextFile( strFile, ForWriting, True )
 
    ' Create an HTTP object
    Set objHTTP = CreateObject( "WinHttp.WinHttpRequest.5.1" )
 
    ' Download the specified URL
    objHTTP.Open "GET", myURL, False
    objHTTP.Send
 
    ' Write the downloaded byte stream to the target file
    For i = 1 To LenB( objHTTP.ResponseBody )
        objFile.Write Chr( AscB( MidB( objHTTP.ResponseBody, i, 1 ) ) )
    Next
 
    ' Close the target file
    objFile.Close( )
End Sub
J'aimerais pouvoir télécharger plusieurs application à partir du même script...mais les télécharger dans des répertoires différents
De même j'aimerais que si l'application est présente, (il y a comparaison des 2 versions) l'exécution passe à la suivante...

petite info je remarque que le processus wscript.exe ne se termine pas après exécution...

Pour le moment je lance plusieurs .vbs (pour chacune des application que je veux télécharger) à l'aide d'un batch et à la fin du batch je kill le process mais encore ça ne fonctionne pas

Bon voilà...je tente de visualiser le tout mais aimerait avoir des idées

Merci
JFMichaud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2012, 10h00   #2
Membre Expert
 
Avatar de hackoofr
 
Homme Mehdi Tounisiano
Enseignant
Inscription : juin 2009
Messages : 760
Détails du profil
Informations personnelles :
Nom : Homme Mehdi Tounisiano
Âge : 37
Localisation : Tunisie

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : juin 2009
Messages : 760
Points : 1 280
Points : 1 280

il vous suffit d’appeler la fonction dans le même script
HTTPDownload( myURL, myPath )
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
HTTPDownload "http://le_lien1_du.exe" , "C:\le\répertoire\Logiciels\1\"
HTTPDownload "http://le_lien2_du.exe" , "C:\le\répertoire\Logiciels\2\"
HTTPDownload "http://le_lien3_du.exe" , "C:\le\répertoire\Logiciels\3\"
HTTPDownload "http://le_lien4_du.exe" , "C:\le\répertoire\Logiciels\4\"
.
.
.
HTTPDownload "http://le_lien(N)_du.exe" , "C:\le\répertoire\Logiciels\(N)\"
 
Sub HTTPDownload( myURL, myPath )
.
.
.
End Sub
__________________
[VBS] SHORTCUTREMOVER outil pour supprimer automatiquement les raccourcis infectés par un virus sur une clé USB
[VBS] Protection Dossier par Mot de Passe
Mes Contributions en Téléchargement
N'oubliez pas de voter pour les messages dont la réponse est pertinente, ayez le réflexe du +1 pour le contributeur ( C'est gratuit et ça donne l'impression d'être utile)
et si votre Problème est résolu pensez au Tag


hackoofr est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 24/01/2012, 16h55   #3
Invité régulier
 
Homme
Inscription : juillet 2011
Messages : 33
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juillet 2011
Messages : 33
Points : 8
Points : 8
Merci hackoofr je tente de faire ainsi mais depuis le script ne fait que télécharger les 2 premières applications et rien ne se passe par la suite...

Une idée? Pourtant lancé seul (juste en indiquant la troisième application) le téléchargement se fait bien pour cette application?
JFMichaud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 14h37   #4
Invité régulier
 
Homme
Inscription : juillet 2011
Messages : 33
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juillet 2011
Messages : 33
Points : 8
Points : 8
Bon étant donné que je n'ai pas trouvé la raison pour que le download passe le second fichier...je me suis tournée vers l'appl http://www.gnu.org/software/wget/

Qui en ligne de commande sous batch me permet de télécharger ce que je veux

Merci
JFMichaud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 14h55   #5
Membre Expert
 
Avatar de hackoofr
 
Homme Mehdi Tounisiano
Enseignant
Inscription : juin 2009
Messages : 760
Détails du profil
Informations personnelles :
Nom : Homme Mehdi Tounisiano
Âge : 37
Localisation : Tunisie

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : juin 2009
Messages : 760
Points : 1 280
Points : 1 280
Citation:
Envoyé par JFMichaud Voir le message
Bon étant donné que je n'ai pas trouvé la raison pour que le download passe le second fichier...je me suis tournée vers l'appl http://www.gnu.org/software/wget/
Qui en ligne de commande sous batch me permet de télécharger ce que je veux
Merci

C'est quoi comme version que vous avez téléchargé ?
pouvez-vous nous communiquer un lien direct de la dernière version de Wget et c'est quoi comme script Batch que vous avez fait ?
__________________
[VBS] SHORTCUTREMOVER outil pour supprimer automatiquement les raccourcis infectés par un virus sur une clé USB
[VBS] Protection Dossier par Mot de Passe
Mes Contributions en Téléchargement
N'oubliez pas de voter pour les messages dont la réponse est pertinente, ayez le réflexe du +1 pour le contributeur ( C'est gratuit et ça donne l'impression d'être utile)
et si votre Problème est résolu pensez au Tag


hackoofr est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 16h29   #6
Membre confirmé
 
Inscription : octobre 2011
Messages : 188
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 188
Points : 287
Points : 287
Le rendement de HTTPDownload est probablement daté - en tout cas, il n'est pas très apt d'utilser scripting.filesystemobject de traiter un stream a priori binaire.

Voici ce que j'écrirais.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
'Ici myPath doit être un fichier destiné avec le parcours si nécessaire
Sub HTTPDownload( myURL, myPath )
    dim oxmlhttp, ostream
    set oxmlhttp=createobject("msxml2.xmlhttp")
    with oxmlhttp
        .open "GET", myURL, False
        .send
        if .status = 200 then
            set ostream=createobject("adodb.stream")
            ostream.type=1    'adTypeText=2, adTypeBinary=1
            'ostream.mode=3    'adModeReadWrite=3
            ostream.open 
            ostream.write .responseBody
            ostream.SaveToFile myPath,2    'adSaveCreateOverWrite=2, without, error if file exists.
            ostream.close
            set ostream=nothing
        end if
    end with
    set oxmlhttp=nothing
End Sub
Avec responseBody binaire proprement travaillé, je ne vois pas la raison de soucis du numbre magique de limite 2 qui semble suggéré pour une raison obscure.
tsuji est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/01/2012, 17h22   #7
Invité régulier
 
Homme
Inscription : juillet 2011
Messages : 33
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juillet 2011
Messages : 33
Points : 8
Points : 8
Citation:
Envoyé par hackoofr Voir le message

C'est quoi comme version que vous avez téléchargé ?
pouvez-vous nous communiquer un lien direct de la dernière version de Wget et c'est quoi comme script Batch que vous avez fait ?

WGet http://opensourcepack.blogspot.com/2...r-windows.html lien direct de téléchargement http://dl.dropbox.com/u/2554170/wget-1.13.1.exe

Et la version que j'ai utilisé à la base http://gnuwin32.sourceforge.net/packages/wget.htm

et mon batch...

Code :
1
2
3
4
5
 
...
pause
cd "C:\Program Files (x86)\GnuWin32\bin"
wget --append-output=C:\Users\blabla\Desktop\storage\Logiciels\File.txt -P C:\Users\blabla\Desktop\storage\Logiciels\7Zip http://downloads.sourceforge.net/sevenzip/7z920.exe
Simple batch file dos

J'ai un autre script qui vérifie la version téléchargé avec celle en production (autre répertoire) et copie celle qui est la plus récente par après le output est placé dans un fichier log et le tout est affiché a l'écran avec les différences s'il y a.
JFMichaud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2012, 17h14   #8
Invité de passage
 
Homme Alain
Administrateur systèmes et réseaux
Inscription : août 2011
Messages : 1
Détails du profil
Informations personnelles :
Nom : Homme Alain
Localisation : France

Informations professionnelles :
Activité : Administrateur systèmes et réseaux
Secteur : Service public

Informations forums :
Inscription : août 2011
Messages : 1
Points : 1
Points : 1
Bonjour,



désolé pour la réponse tardive, mais il me semble plus simple,
d' utiliser un logiciel gratuit dont la mission principale est justement,
d' effectuer les tâches suivantes :

- Base de données , des différents logiciels à tenir à jour,
- Fonctionnement , en tache de fond,
- Programmation avancée grâce aux RegEx,
- Comparaison, des versions, etc ...

> Ce Logiciel Est Trouvable Sur Sourceforge.Net
> Et Il Se Nomme KETARIN.

JamesWhite66 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h21.


 
 
 
 
Partenaires

Hébergement Web