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![]()
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![]()
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo %errorlevel%
Un shell est tout simplement un interpreteur de commande. Donc Windows possede bien un shell.Envoyé par Nemesis_
goto n'est pas une variable mais une instruction.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.
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.
Erreur de ma part pour goto, j'ai confondu avec "echo" qui peut tres bien afficher ce qu'il desire je pense.J'aimerais savoir comment afficher/ récupérer la valeur de retour d'un exécutable lancé dans un shell.
Que propose tu comme réponse à sa question?
Tu n'as pas compris. Un shell EST un interpreteur de commande.Envoyé par Nemesis_
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...
J'ai deja donné une solution.Que propose tu comme réponse à sa question?
echo %errorlevel%
Ok désolé je n'avais pas vu.Envoyé par Skyrunner
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 croisEnvoyé par Skyrunner
![]()
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...![]()
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 WindowsEnvoyé par Nemesis_
Ici le code de retour est 1 donc quelque chose s'est mal passé.
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>
Ok merci j'avais pas du tout compris ça
Cordialement.
Envoyé par Skyrunner
C''est exactement ce que je voulais !!!
Salut !
Plus d'infos :
Bonne continuation !
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 !
Partager