IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

test validité URL


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 4
    Par défaut test validité URL
    Bonsoir,

    Pour améliorer mon travail au quotidien, je réalise un script en batch qui me permettrai d'installer quelques logiciels ou bien les mettre à jour en mode silencieux.

    Cette partie là est fonctionnelle, mais j'aimerais le pousser un peu plus loin en réalisant un script qui actualiserai mes sources (dispo en local), c'est à dire qui irai télécharger directement sur internet les dernières versions, je pense par exemple au sdat de McAfee ou bien java, flash player .....

    J'utilise la commande wget pour aller récupérer mes sources, jusque la pas de problème, mais je souhaiterai l'incruster dans une boucle et faire un test pour savoir si le lien internet éxiste.

    Exemple :
    Voici le lien pour telecharger flashplayer en standalone:
    download.macromedia.com/get/flashplayer/current/licensing/win/install_flash_player_11_active_x.exe

    On remplace la version 11 par une variable qu'on implémente par exemple de 10, puis on test l'URL en enlever un 1 à chaque fois, et si l'URL éxiste alors on telecharge la source, j'espère que tout le monde me suit.

    Du style:
    IF EXIST download.macromedia.com/get/flashplayer/current/licensing/win/install_flash_player_21_active_x.exe WGET .......
    IF EXIST download.macromedia.com/get/flashplayer/current/licensing/win/install_flash_player_20_active_x.exe WGET .......
    IF EXIST download.macromedia.com/get/flashplayer/current/licensing/win/install_flash_player_19_active_x.exe WGET .......
    Et ainsi de suite, bien sur dans une boucle.


    Donc 1ere chose, comment fait-on pour tester si une URL est valide ?

    Merci d'avance.

    bonne soirée.

  2. #2
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    Salut,

    Voici le lien d'un script mixte BAT/VBS que tu peux adapter facilement à ton cas
    il te suffit de creer une boucle qui décremente le numero de version dans l'URL et
    qui envoie UrlChecker avec la nouvelle URL si tu as un code 200 c'est OK tu peux télecharger si le code est 404 l'URL n'existe pas.

    http://windows.developpez.com/telech...AT-URL-CHECKER


  3. #3
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut

    une petite mise en forme si vous me permettez SACHA
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    ::://BAT URL CHECKER
    ::://BY SachaDee 2013
    @ECHO OFF
    Title Test de validite URL
    cls
    Color 9B
    mode con cols=140 lines=4
    ::://ICI L'URL A TESTER
    set URLTest="http://www.gametop.com/online-free-games/desert-rider-online/game.swf"
    ::://
    if exist $u del $u
    (
    echo Set HttpRequest = CreateObject^("Msxml2.XMLHTTP"^)
    echo set shl = createobject^("wscript.shell"^)
    echo HttpRequest.open "HEAD", %URLTest%, False
    echo On Error Resume Next
    echo HttpRequest.send
    echo If Err.Number ^<^> 0 Then
    echo shl.run "cmd /c echo " ^& Err.Number ^& ">$U",0 ,false
    echo Else
    echo shl.run "cmd /c echo " ^& HttpRequest.status ^& ">$U",0 ,false
    echo End If)>URL.vbs
    URL.vbs
    >nul PING localhost -n 2 -w 1000
    ::echo %URLTest%
    
    for /f %%a in ($U) do (if %%a equ 404 echo URLTest INVALIDE
                           if %%a equ 200 echo %URLTest% est VALIDE
                           if %%a lss 100 echo ERREUR DE CONNEXION)
    
    Echo Appuyez sur une touche pour atteindre  %URLTest% avec Internet Explorer               
    pause>Nul
    Start iexplore %URLTest%
    J'ai une petite question Sacha ?
    Comment peut-on exploiter ce test si j'ai plusieurs URL(s) stockées dans un fichier ?
    Càd je veux tester chaque URL à part une par une et lancer que les URL(s) qui sont valides

  4. #4
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    Salut Hackoo,

    il suffit de modifier le code VBS pour que URL.vbs puisse se lancer avec un argument, de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Set HttpRequest = CreateObject("Msxml2.XMLHTTP")
    set shl = createobject("wscript.shell")
    Set argum  = Wscript.Arguments
    HttpRequest.open "HEAD", argum(0) , False
    On Error Resume Next
    HttpRequest.send
    If Err.Number <> 0 Then
    shl.run "cmd /c echo " & Err.Number & ">$U",0 ,false
    Else
    shl.run "cmd /c echo " & HttpRequest.status & ">$U",0 ,false
    End If
    et ensuite on cree notre fichier

    "tache.txt" qui va contient toutes les URL à tester :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    http://download.macromedia.com/get/flashplayer/current/licensing/win/install_flash_player_11_active_x.exe
    http://download.macromedia.com/get/flashplayer/current/licensing/win/install_flash_player_12_active_x.exe
    Et le bat qui va récuperer une URL après l'autre va ressembler à ceçi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    @ECHO OFF
    cls&color 17
    setlocal enabledelayedexpansion
    ::://ON récupere les URL(s) dans un fichier
    ::://On appel url.vbs avec l'url correspondante à chaque ligne
    ::://On traite le résultat (si 200 telecharge) si non rien
    
    for /f "delims=" %%a in (tache.txt) do (call url.vbs "%%a"
                                            >nul PING localhost -n 2 -w 1000
                                            set /p $val= <$U
                                            if !$val! equ 200 (echo ON TELECHARGE : %%a) else (echo ON NE TELECHARGE PAS : %%a))
    
    endlocal
    Remplacer le "Echo ON TELECHARGE : " par :

    pour un télechargement silencieux

    ou

    Pour télécharger avec un prompt dans votre Navigateur par defaut.

    ==========================

    Maintenant Hackoo à moi de te poser une question n'étant pas un spécialiste
    du VBS comme tu le sais.
    Quel est la commande VBS pour lancer une commande dans la même instance du Shell où l'on se trouve ? ce qui permettrait, au lieu de créer un fichier de setter l'errorlevel à 200 si la commande VBS retourne 200 et 404 sinon.

    Ou Y a t'il une commande VBS pour directement setter l'errorlevel ?


  5. #5
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut
    Sacha
    Très bon Script "I like it" , j'aime bien "le mariage" entre un Batch et un Vbscript

  6. #6
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    salut tout le monde

    Dans le manuel de wget, y'a une option pour voir seulement l'entête de la réponse du serveur, -S, peut être même juste le code http, ou encore un test sur le code de retour, du coup, c'est pas nécessaire de renchérir avec vbs/Msxml2.XMLHTTP, enfin il faut choisir l'un ou l'autre quoi...

  7. #7
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    Citation Envoyé par sachadee Voir le message
    Quel est la commande VBS pour lancer une commande dans la même instance du Shell où l'on se trouve ? ce qui permettrait, au lieu de créer un fichier de setter l'errorlevel à 200 si la commande VBS retourne 200 et 404 sinon.

    Ou Y a t'il une commande VBS pour directement setter l'errorlevel ?



  8. #8
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    Salut Minnesota,

    Merci pour cette info.

    Voici le code modfier sans création de fichier temporaire, plus propre et beaucoup plus rapide.

    http://windows.developpez.com/telech...AT-URL-CHECKER



Discussions similaires

  1. Test validité d'un formulaire
    Par philou029 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 24/01/2008, 10h39
  2. Test validité d'une page
    Par karfyn dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/10/2006, 10h42
  3. Teste si url existe
    Par matique dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 03/04/2006, 11h03
  4. Test une url
    Par lilianjee dans le forum Langage
    Réponses: 1
    Dernier message: 23/02/2006, 17h00
  5. test validité pgn
    Par chonos dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 14/12/2005, 20h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo