Connexion

Récupérer mon mot de passe

Qui est en ligne ?
Il y a en tout 1 utilisateur en ligne :: 0 Enregistré, 0 Invisible et 1 Invité

Aucun

Le record du nombre d'utilisateurs en ligne est de 21 le Jeu 17 Oct 2013, 13:40
Derniers sujets
Flux RSS



Flag Counter
Partenaires

[BAT]Tester si une commande à réussi ou échoué sans tester l'errorlevel

Voir le sujet précédent Voir le sujet suivant Aller en bas

[BAT]Tester si une commande à réussi ou échoué sans tester l'errorlevel

Message par Sachadee le Lun 17 Juin 2013, 17:09

On peut tester de cette manière si une commande BAT a réussi ou échoué. Sans utiliser le test IF sur %errorlevel%


Code:
Votre_commande && (
  echo La commande c'est terminé avec succès
) || (
  echo La commande a echoué
)
Explication :

Le "&&" est un descripteur de commande conditionnel. La commande à droite est uniquement executé si
l' errorlevel est égal à 0 (pas d'erreur). On peut le mettre en cascade si désiré. De la même maniere le double pipe fais l'inverse. Il éxecute la commande sur la droite uniquement si l'errorlevel est supérieur à 0. Il est également utilisable en cascdade.

On comprend vite l'intèret de ces 2 descripteurs pour simplifier un code en évitant des tests "IF" à répetition.

Cela permet également de palier à certain comportement étrange de l'intèrepreteur de commande dans les cas de redirectionnement.

Exemple :

Si vous tapez cette commande :

Code:

type >nul C:\existe\pas\fichier.txt
Vous aurez une erreur du type: Le chemin d'accès spécifié est introuvable.
et si vous testez l'errorlevel

Code:

echo %errorlevel%
0

Il est à zero alors que la commande à échouée.

Pour palier à ce problème :

Code:

C:\>type nul > C:\existe\pas\ficjer.txt && echo ok || echo Echoué
Le chemin d'accès spécifié est introuvable.
Echoué

C:\>echo %errorlevel%
1

Ou si l'on veut juste setter l'errorlevel au delà de l'erreur de redirection :

Code:

type nul > C:\existe\pas\fichier.txt || rem

Et voilà !
avatar
Sachadee
Admin
Admin

Mensagens : 591
Data de inscrição : 04/06/2013

http://bbat.forumeiro.com

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum