BBAT BATCH ON-LINE
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Connexion

Récupérer mon mot de passe

Qui est en ligne ?
Il y a en tout 3 utilisateurs en ligne :: 0 Enregistré, 0 Invisible et 3 Invités

Aucun

Le record du nombre d'utilisateurs en ligne est de 29 le Mer 29 Jan 2020, 10:53
Derniers sujets
Flux RSS



Flag Counter
Partenaires
Le Deal du moment : -25%
Appareil Photo Instantané Fujifilm Instax ...
Voir le deal
59.99 €

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

Aller en bas

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

Message par Sachadee 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à !
Sachadee
Sachadee
Admin
Admin

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

https://bbat.forumeiro.com

Revenir en haut Aller en bas

Revenir en haut


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