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 :

[DOS] shell - valeur de retour


Sujet :

Scripts/Batch

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 35
    Par défaut [DOS] shell - valeur de retour
    Bonjour,

    J'aimerais savoir comment afficher/ récupérer la valeur de retour d'un exécutable lancé dans un shell.
    Sous linux, je sais que cette valeur est stockée dans $?, est-ce qu'il y a une variable similaire sous windows ?

    D'avance merci

  2. #2
    Membre Expert Avatar de Nemesys
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 895
    Par défaut
    Ben déjà, Windows c'est pas du shell mais du Dos. Le shell est un langage Unix. Après tu peux le faire dans un fichier .bat mais certaines commandes ne sont pas les memes que sur unix. Dans ce cas je pense que la variable "echo" permet de faire ce que tu veux.

    Cordialement.

  3. #3
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380

  4. #4
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par Nemesis_
    Ben déjà, Windows c'est pas du shell mais du Dos. Le shell est un langage Unix.
    Un shell est tout simplement un interpreteur de commande. Donc Windows possede bien un shell.

    Après tu peux le faire dans un fichier .bat mais certaines commandes ne sont pas les memes que sur unix. Dans ce cas je pense que la variable "goto" permet de faire ce que tu veux.
    Cordialement.
    goto n'est pas une variable mais une instruction.

  5. #5
    Membre Expert Avatar de Nemesys
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 895
    Par défaut
    Ouai interpréteur de commandes..sauf que c'est pas un "shell" et les commandes ne sont pas les memes, donc moi sous windows je n'appelle pas ça shell.


    J'aimerais savoir comment afficher/ récupérer la valeur de retour d'un exécutable lancé dans un shell.
    Erreur de ma part pour goto, j'ai confondu avec "echo" qui peut tres bien afficher ce qu'il desire je pense.



    Que propose tu comme réponse à sa question?

  6. #6
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par Nemesis_
    Ouai interpréteur de commandes..sauf que c'est pas un "shell" et les commandes ne sont pas les memes, donc moi sous windows je n'appelle pas ça shell.
    Tu n'as pas compris. Un shell EST un interpreteur de commande.
    Donc sous Linux nous avons plusieurs shell comme sh, bash, zsh, rsh...
    Sous Windows nous avons aussi un shell.
    Il est bien evident que les commandes ne sont pas les memes.
    Mais cela reste un shell, car ce dernier a pour but d'interpreter des commandes comme dir, copy...

    Que propose tu comme réponse à sa question?
    J'ai deja donné une solution.
    echo %errorlevel%

  7. #7
    Membre Expert Avatar de Nemesys
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 895
    Par défaut
    Citation Envoyé par Skyrunner
    J'ai deja donné une solution.
    echo %errorlevel%
    Ok désolé je n'avais pas vu.

    Citation Envoyé par Skyrunner
    Tu n'as pas compris. Un shell EST un interpreteur de commande.
    Donc sous Linux nous avons plusieurs shell comme sh, bash, zsh, rsh...
    Sous Windows nous avons aussi un shell.
    Il est bien evident que les commandes ne sont pas les memes.
    Mais cela reste un shell, car ce dernier a pour but d'interpreter des commandes comme dir, copy...
    je suis d'accord mais je dirais plutot que sous Windows c'est un interpreteur DOS et sous unix un interpreteur shell. C'est d'ailleurs comme ca qu'on me l'a appris en formation je crois

  8. #8
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Par défaut
    Le "Shell" est bien un interpréteur de commande et DOS est un OS qui possède un "Shell" CLI

    Windows possède plusieurs "Shell" :
    - l'interpréteur de commandes DOS qui est un "Shell" CLI
    - mais également un "Shell" GUI

    http://fr.wikipedia.org/wiki/Shell_(informatique)

    Mais bon...

  9. #9
    Membre Expert Avatar de Nemesys
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 895
    Par défaut
    La Nemehy semble nous parler de "script shell" dans sa question, et ceci est réalisable sous unix uniquement. Sous windows on parlera plutot de "script batch" malgré que dos est un os qui possède un "shell".

    Voila sur quoi je voulais insister qui est plus en rapport avec le sujet
    Merci tout de meme pour l'eclaircicement et désolé de ma malformulation

  10. #10
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par Nemesis_
    La Nemehy semble nous parler de "script shell" dans sa question, et ceci est réalisable sous unix uniquement. Sous windows on parlera plutot de "script batch" malgré que dos est un os qui possède un "shell".

    Voila sur quoi je voulais insister qui est plus en rapport avec le sujet
    Merci tout de meme pour l'eclaircicement et désolé de ma malformulation
    En fait il ne parle nul part de script shell il veut seulement savoir comment recuperer le code de retour d'un programme lancé via le shell Windows

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    C:\Documents and Settings\Skyrunner>copy
    La syntaxe de la commande est incorrecte.
    
    C:\Documents and Settings\Skyrunner>echo %errorlevel%
    1
    
    C:\Documents and Settings\Skyrunner>
    Ici le code de retour est 1 donc quelque chose s'est mal passé.

  11. #11
    Membre Expert Avatar de Nemesys
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 895
    Par défaut
    Ok merci j'avais pas du tout compris ça


    Cordialement.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 35
    Par défaut
    Citation Envoyé par Skyrunner
    echo %errorlevel%

    C''est exactement ce que je voulais !!!

  13. #13
    Membre émérite
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Par défaut ErrorLevel
    Salut !

    Plus d'infos :

    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
     
    IF ERRORLEVEL Vérifie le numéro de message d'erreur.
    Des commandes MS-DOS renvoient un numéro spécial au fichier batch en
    cas de problème ou d'erreur, désigné par ERRORLEVEL. ERRORLEVEL vaut
    toujours 0 si aucune erreur ne s'est produite. MS-DOS exécute le reste de la
    ligne si ERRORLEVEL est égal ou supérieur à la valeur spécifiée. 
     
     
    
    ATTENTION. Si vous devez tester plusieurs valeurs de ERRORLEVEL, testez
    –les de la plus grande à la plus petite (ex : if errorlevel 255.. if errorlevel 100…
    if errorlevel 50…, etc) car comme dit ci-dessus, MS-DOS exécute le reste de
    la ligne si ERRORLEVEL est égal ou supérieur à la valeur spécifiée.
    Il n'y a pas besoin de signe "=" entre ERRORLEVEL et le nombre
    représentant sa valeur.
     
     
    Exemple :
    Format a:
    If errorlevel 3 echo Vous avez annule FORMAT par Ctrl+C !
    Bonne continuation !

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

Discussions similaires

  1. Récupérer dans un programme C la valeur de retour d'un script shell
    Par domiq44 dans le forum Bibliothèque standard
    Réponses: 3
    Dernier message: 23/12/2009, 20h02
  2. verifier la valeur de retour d'un programme (dos)
    Par kamouminator dans le forum Windows XP
    Réponses: 3
    Dernier message: 18/07/2007, 08h57
  3. [commande DOS] Récupérer le code retour d'un programme
    Par bobunny dans le forum Scripts/Batch
    Réponses: 8
    Dernier message: 04/06/2004, 15h51
  4. Valeur de retour d'une procédure externe
    Par elekis dans le forum x86 32-bits / 64-bits
    Réponses: 4
    Dernier message: 16/04/2004, 16h45
  5. Pourquoi une seule valeur de retour pour les fonctions ?
    Par Bruno75 dans le forum Langages de programmation
    Réponses: 33
    Dernier message: 18/01/2004, 13h58

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