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 :

script batch avec 4 arguments obligatoires [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Par défaut script batch avec 4 arguments obligatoires
    Bonjour,

    J'essaye de créer un script batch comportant 4 arguments obligatoires par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pkg_index.cmd -d i: -f videos
    - L'option "-d" indique la lettre du disque dur
    - L'option "-f" indique le nom du répertoire
    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
    @echo off
    
    SET %1="-d"
    SET %3="-f"
    
    IF %1.==. GOTO No1
    IF NOT "%1" GOTO No1
    IF %2.==. GOTO No2
    IF %3.==. GOTO No3
    IF NOT "%3" GOTO No3
    IF %4.==. GOTO No4
    
    GOTO End
    
    :No1
      ECHO No param 1
    GOTO End
    :No2
      ECHO No param 2
    GOTO End
    :No3
      ECHO No param 3
    GOTO End
    :No4
      ECHO No param 4
    GOTO End
    
    :End
    Je ne parviens pas à tester %1="-d" et %3="-f", une petite idée s'il vous plaît ?

    Merci

  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
    Je ne comprends pas ce que tu cherche à tester.
    Tu as déjä la valeur de tes variables dans ta ligne de commande.

    -d est automatiquement attribués à %1
    i: à %2
    -f à %3
    videos à %4

    pourquoi tu cherche à faire un set %1=-d (impossible).

    Pour comprendre écrit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo %1 %2 %3 %4
    pause
    à ta 2ème ligne de code et lance ton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pkg_index.cmd -d i: -f videos
    Et on continura....

    Amicalement

  3. #3
    Membre expérimenté

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Par défaut
    Bonjour

    Je veux simplement tester que l'argument %1 est bien = à "-d" pour poursuivre le traitement et non "-e" ou "-x" sinon echo option n'existe pas. C'est un exemple

  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
    Essaye ça si tu ná que 1 parametres autorisés

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if %1==-d goto suite
    echo Erreur Parametre invalide
    pause
    goto eof
    :suite
    echo parametre valide
    ::la suite de ton programme

    et ça si tu as plusieurs parametres autorisés

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ::::liste parametres autorisés
    set arg_valide=-e -f -h
    
    for /d  %%a in (%arg_valide%) do (if %1==%%a goto suite)
    echo Erreur parametre invalide
    goto eof
    
    :suite
    echo parametre valide

  5. #5
    Membre expérimenté

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Par défaut
    Merci tout d'abord de ta réponse:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ::::liste parametres autorisés 
    set arg_valide=-e -f -h  
    
    for /d  %%a in (%arg_valide%) do (if %1==%%a goto suite)
    echo Erreur parametre invalide 
    goto eof  
    
    :suite 
    echo parametre valide
    Si je teste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    fichier.cmd -e => paramètre valide
    fichier.cmd -x => paramètre invalide
    fichier.cmd -e i: -x => paramètre valide et pourtant -x n'est pas un argument autorisé
    Je cherche

  6. #6
    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
    Olivier tu dois faire la même procédure pour le deuxieme, troisieme et quatrieme
    argument (respectivement %2,%3,%4)

    Avec le code que je t'ai mis on test seulement le premier argument %1

    Je t'ai fais le programme en entier et de manière bien compréhensible. parce que j'ai le temps (vacance), mais essaie de décomposer le programme et de comprendre ce qui se passe. C'est bien plus utile

    Voilä le code :

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    @echo off
    
    ::: On cree un indicateur pour savoir quel parametre est invalide
    set switch_param=1
    
    ::::liste parametres autorisés pour 1er argument 
    set arg_valide1=-e -f -h 
    
    ::::liste parametres autorisés pour 2eme argumentt 
    set arg_valide2=:x :p :i 
    
    ::::liste parametres autorisés pour 3eme argument 
    set arg_valide3= /d /h /k
    
    ::::liste parametres autorisés pour 4eme argumentt 
    set arg_valide4=video livre medic
    
    :::ON TEST ARGUMENT 1
    for /d  %%a in (%arg_valide1%) do (if %1==%%a goto test2)
    set switch_param=1
    goto error
    
    :::ON TEST ARGUMENT 2
    :test2
    for /d  %%a in (%arg_valide2%) do (if %2==%%a goto test3)
    set switch_param=2
    goto error
    
    :::ON TEST ARGUMENT 3
    :test3
    for /d  %%a in (%arg_valide3%) do (if %3==%%a goto test4)
    set switch_param=3
    goto error
    
    :::ON TEST ARGUMENT 4
    :test4
    for /d  %%a in (%arg_valide4%) do (if %4==%%a goto suite)
    set switch_param=4
    goto error
    
    :suite
    echo TOUT LES PARAMETRES SONT VALIDES ON CONTINUE
    :::::TON PROGRAMME
    
    goto eof
    
    :error
    echo ERREUR PARAMETRES NO - %switch_param%  EST INVALIDES
     
    :eof 
    ECHO FIN
    Tu dois au préalable définir les valeurs autorisées pour chaque argument dans les 4 variables arg_valide (1 à 4).

    Amicalement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Python 3.X] lancer un script .py avec deux arguments
    Par Mic** dans le forum Général Python
    Réponses: 4
    Dernier message: 03/02/2015, 21h40
  2. Execution du script batch avec différents contextes
    Par rolandl dans le forum Exécution et industrialisation
    Réponses: 9
    Dernier message: 03/08/2012, 19h04
  3. Appel script Perl avec arguments
    Par metalcoyote dans le forum Général Java
    Réponses: 5
    Dernier message: 12/06/2008, 16h33
  4. Un script shell avec nombre d'argument variable
    Par lastrecrue dans le forum Linux
    Réponses: 1
    Dernier message: 28/05/2006, 11h35
  5. (Batch et VBS) Petit probléme avec un script batch VBS
    Par Edoxituz dans le forum Windows
    Réponses: 11
    Dernier message: 27/02/2006, 17h21

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