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 :

aide à la compréhension d'un script


Sujet :

Scripts/Batch

  1. #1
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mai 2007
    Messages : 643
    Points : 280
    Points
    280
    Par défaut aide à la compréhension d'un script
    Salut à tous,

    Je dois fournir un script qui aurait comme option de pouvoir detecter si un logiciel est bien installer ou pas avant de continuer son execution afin de bien remplir sa tâche correctement.je manipule 3 logiciels différents par des script xml.

    J'ai trouvé un script sur le net qui fait ce que je souhaiterais obtenir dans une variable, a savoir le PATH du dossier du logiciel recherché.Malheureusement c'est un script autonome qui demande un paramètre par l'utilisateur, alors que moi je connais déjà les paramètres a rentrer à la commande et je souhaite le faire faire automatiquement.

    D'ou le fait de vouloir le comprendre pour mieux le manipuler comme je le souhaite pour mon projet.

    Le script est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @echo off
    set Liste=C
    for %%a in (%Liste%) do for /f "delims=" %%b in ('dir /s /b /ad "%%a:\" 2^>NUL ^| findstr /i "\%~1$"') do (
    set dossier=%%b
    goto :Sortie
    )
    echo %1 introuvable dans %Liste%
    goto :eof
    :Sortie
    echo %dossier%
    Je n'arrive pas à comprendre quel valeur prennent les variables %%a et %%b?
    que signifie et à quel moment dois-je utiliser ou pas les guillemets?
    que signifie et à quel moment dois-je utiliser ou pas les quotes?
    que signifie et à quel moment dois-je utiliser ou pas les chapeaux(après le 2)?

    Car je comprend la commande 2>NUL mais pas pourquoi il utilise ce signe.
    et pour finir que signifie au juste
    "\%~1$" ?


    Cela peux vous paraitre évident et accessible facilement mais en fesant des recherche sur le web je ne tombe que sur doc assez basique du BATCH ou des austère qui ne traite pas vraiment de cela car pour eux c'est évident.

    Donc je suis entre le novice et l'experimenté et je ne trouve aucunes doc qui me correspondent pour répondre à mes questions, alors ca serait sympa à vous de me donner un ti coup de puce

    Je vous souhaite d'ici là une bonne année à tous et à vos codes


  2. #2
    Membre à l'essai
    Profil pro
    E/C
    Inscrit en
    février 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : E/C

    Informations forums :
    Inscription : février 2006
    Messages : 31
    Points : 22
    Points
    22
    Par défaut
    Je trouve ce script assez illisible, effectivement.
    Personnellement, je préfère utiliser la commande call, qui me permet dans un for d'appeler un "sous-programme" (eh oui, on est en non-structuré ici), et d'améliorer la lisibilité et le débogage

    Quelques pistes, de mémoire:

    COMMANDE 1>ici 2>labas
    va diriger la sortie "stdout" de la commande dans le fichier "ici" et la sortie d'erreur stderr ver le fichier labas. Après, je vois pas bien le ^... Normalement, c'est un caractère d'échappement, c'est à dire que, par exemple, si tu veux générer du html, tu va écrire
    echo ^<h1^>mon titre ^</h1^> >> out.htm
    pour ajouter une ligne dans le fichier

    %~1 va récupérer l'argument 1 de la commande, et lui enlever les guillemets. Pour le '$', vois la doc de findstr

    Bref, pas évident, mais le mieux c'est d'essayer de le découper en petit bout, en remplaçant les commandes des for par des appels de sous-prog, et de voir (echo) les arguements transmis à chaque étape, un truc du genre:

    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
    
    @echo off
    set Liste=C
    for %%a in (%Liste%) do call :sp1 %%a
    echo %1 introuvable dans %Liste%
    pause
    goto :eof
    
    :Sortie
    echo %dossier%
    pause
    goto :eof
    
    :sp1
    echo arg1=%1
    
    for /f "delims=" %%b in ('dir /s /b /ad "%1:\" 2^>NUL ^| findstr /i "\%~1$"') do (
    set dossier=%%b
    goto :Sortie
    )
    goto :eof
    Bon courage

  3. #3
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mai 2007
    Messages : 643
    Points : 280
    Points
    280
    Par défaut
    Merci pour ton aide Sebkramm

    je me suis effectivement aidé de la commande echo pour le comprendre.
    Je vois ce que ca fait mais j'ai encore du mal à l'expliquer correctement donc c'est encore un peu flou mais je m'en sort.

    Je trouve par contre dommage de ne pas trouver de vrai doc sur la programmation de batch sous windows malgré l'affluence des petits tuto sur le web.

    Si tu as des bon tuyaux

    Sinon connais tu un moyen pas trop compliqué de faire un IHM pour récuperer des variables pour ANT ??

  4. #4
    Membre à l'essai
    Profil pro
    E/C
    Inscrit en
    février 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : E/C

    Informations forums :
    Inscription : février 2006
    Messages : 31
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par miltone Voir le message
    Si tu as des bon tuyaux
    http://technet.microsoft.com/fr-fr/l...71(en-us).aspx

    Sinon, j'ai commencé à compiler des ressources (en dehors de developpez, bien sûr...):
    http://delicious.com/skramm/batfile

    Ca vaut ce que ca vaut...

    Sinon connais tu un moyen pas trop compliqué de faire un IHM pour récuperer des variables pour ANT ??
    Hein ? Tu veux dire
    http://en.wikipedia.org/wiki/Apache_Ant
    ou
    http://en.wikipedia.org/wiki/ANT_(network)
    ?
    Bon, change pas grand chose, pas de compétence ni dans l'un ni dans l'autre...

  5. #5
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mai 2007
    Messages : 643
    Points : 280
    Points
    280
    Par défaut
    Bonjour sebkramm

    Excuse moi de ne pas t'avoir répondu. J'ai résolu mon soucis en passant par des variables d'envirronement windows créé dans un batch. Maintenant je commence java pour amilioré mon programme donc je n'aurais plus directement ce soucis de récupération de variable.

    Le script que j'ai indiqué au départ n'est pas simple à comprendre mais a force de test j'ai réussi et cela prend bien un path de dossier programme comme path.

    Effectivement je parlais bien de ANT outils java de compilation de projet

    Merci pour tes sources

Discussions similaires

  1. Aide à la compréhension d'un petit script
    Par Ti-EN dans le forum VBScript
    Réponses: 5
    Dernier message: 03/05/2014, 13h33
  2. Besoin d'aide pour faire fonctionner un Script d'upload d'images
    Par PaoOo dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 15/06/2006, 22h24
  3. [SNMP] Besoin d'aide pour SNMP, MIB dans script
    Par suya95 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 17/05/2006, 17h20
  4. [langage]Besoin d'aide pour debogage d'un script
    Par deadgod dans le forum Langage
    Réponses: 32
    Dernier message: 27/06/2005, 01h18

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