Batch comment dire si le champ est vide
Résolu
kosmic69
Messages postés
189
Date d'inscription
Statut
Membre
Dernière intervention
-
kosmic69 Messages postés 189 Date d'inscription Statut Membre Dernière intervention -
kosmic69 Messages postés 189 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis en train de programmer un batch et je n'arrives pas a trouver une commande sur le net. Comment dire si mon "set" est vide alors on redemande l'information ?
J'aurais pensé a un truc du style : If variable == EMPTY GOTO requestvariable
Merci pour votre aide
Je suis en train de programmer un batch et je n'arrives pas a trouver une commande sur le net. Comment dire si mon "set" est vide alors on redemande l'information ?
J'aurais pensé a un truc du style : If variable == EMPTY GOTO requestvariable
Merci pour votre aide
A voir également:
- Batch comment dire si le champ est vide
- Comment supprimer une page vide sur word - Guide
- Fichier batch - Guide
- Caractere vide - Guide
- Coeur vide - Forum Facebook
- Formate pour taxer client frigo vide - Forum Vos droits sur internet
12 réponses
Hello
Tu dois pouvoir y arriver en faisant IF "%variable" == "" goto machin.
les guillemets de sont pas indispensables, le machin va remplacer le nom par l'avaleur.
variable : %1 ; si tu dis "%1" et qu'il n'y a rien, ça donne "".
Tu peux mettre autre chose : XX%1XX vide devrait donner XXXX.
J'ai eu le pb il y a peu, et dans le help de la commande IF il y a des exemples.
Si tu utilises une variable d'environnement : ?%TOTO%? vide donne ??
Attassion aux caractères spéciaux quand même, ça peut le troubler ...
Un exemple qui marche :
SET TOTO=XXXX
SET TITI=
IF /%TOTO%/ == // GOTO TOTOVIDE
ECHO TOTO non vide = %TOTO%
:TOTOVIDE
IF /%TITI%/ == // GOTO TITIVIDE
ECHO TITI non vide = %TITI%
:TITIVIDE
PAUSE
Cordialement,
Pierre
Tu dois pouvoir y arriver en faisant IF "%variable" == "" goto machin.
les guillemets de sont pas indispensables, le machin va remplacer le nom par l'avaleur.
variable : %1 ; si tu dis "%1" et qu'il n'y a rien, ça donne "".
Tu peux mettre autre chose : XX%1XX vide devrait donner XXXX.
J'ai eu le pb il y a peu, et dans le help de la commande IF il y a des exemples.
Si tu utilises une variable d'environnement : ?%TOTO%? vide donne ??
Attassion aux caractères spéciaux quand même, ça peut le troubler ...
Un exemple qui marche :
SET TOTO=XXXX
SET TITI=
IF /%TOTO%/ == // GOTO TOTOVIDE
ECHO TOTO non vide = %TOTO%
:TOTOVIDE
IF /%TITI%/ == // GOTO TITIVIDE
ECHO TITI non vide = %TITI%
:TITIVIDE
PAUSE
Cordialement,
Pierre
Comme ça ça marchera :
rem @ECHO OFF
:action
SET /P leave= Veuillez taper 1 xxxx, 2 pour xxxx et 3 pour xxxx :
IF '%leave%' == '1' GOTO retry
IF '%leave%' == '2' GOTO start
IF '%leave%' == '3' GOTO end
IF "%leave%" == "" GOTO action
GOTO end
C'est pasque il doit y avoir une valeur après IF ; si la variable est vide, ça fait IF == et il ne s'y retrouve pas.
Tu peux aussi utiliser CHOICE
Cordialement,
Pierre
rem @ECHO OFF
:action
SET /P leave= Veuillez taper 1 xxxx, 2 pour xxxx et 3 pour xxxx :
IF '%leave%' == '1' GOTO retry
IF '%leave%' == '2' GOTO start
IF '%leave%' == '3' GOTO end
IF "%leave%" == "" GOTO action
GOTO end
C'est pasque il doit y avoir une valeur après IF ; si la variable est vide, ça fait IF == et il ne s'y retrouve pas.
Tu peux aussi utiliser CHOICE
Cordialement,
Pierre
MERCI !!!!! Ca fonctionne, j'ai pas compri pourquoi mais ca fonctionne !!! :)
J'ai encore quelques souci mais j'vous dis quoi ;)
J'ai encore quelques souci mais j'vous dis quoi ;)
il y a une autre solution plus facile, tu peux juste mettre parexemple: if variable == '' (ce sont deux apostrophes)..
j'éspère que ca va résoudre ton problème.
j'éspère que ca va résoudre ton problème.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Cela ne fonctionne pas, j'aimerais pouvoir faire en sorte que si :
:action
SET /P leave= Veuillez taper 1 xxxx, 2 pour xxxx et 3 pour xxxx :
IF %leave% == 1 GOTO retry
IF %leave% == 2 GOTO start
IF %leave% == 3 GOTO end
IF "%leave%" == "" GOTO action
GOTO end
Vous voyez un peu ? Et si je ne rentre rien, la fenetre se referme ... (je suis sous vista)
:action
SET /P leave= Veuillez taper 1 xxxx, 2 pour xxxx et 3 pour xxxx :
IF %leave% == 1 GOTO retry
IF %leave% == 2 GOTO start
IF %leave% == 3 GOTO end
IF "%leave%" == "" GOTO action
GOTO end
Vous voyez un peu ? Et si je ne rentre rien, la fenetre se referme ... (je suis sous vista)
Le logiciel que j'utilise pour quoi ? lire ou creer ?
Pour lire : cmd.exe
Pour creer : editeur de texte
Voila
Pour lire : cmd.exe
Pour creer : editeur de texte
Voila