Comment vérifier si la saisie de l'utilisateur se termine avec une chaîne de caractères en batch (.chauve-souris) script
Je suis en train d'écrire un script batch où si l'entrée d'utilisateur est vide ou ne se termine par "DTO" j'ai besoin de demander à l'utilisateur d'entrer DTO nom.
:INPUT
SET /P INPUTDTO=Enter the DTO:
IF "%INPUTDTO%"=="" (
IF "%INPUTDTO%" ??????? (
GOTO NODTO
)
)
:NODTO
ECHO ERROR: Please enter a valid DTO.
GOTO INPUT
Comment vérifier si la saisie de l'utilisateur se termine par "DTO"
OriginalL'auteur ams2705 | 2012-10-03
Vous devez vous connecter pour publier un commentaire.
L'existant INPUTDTO valeur doit probablement être désactivée car SET /P préserver la valeur existante si l'utilisateur ne saisit pas tout.
Ajouter le
/I
passer à l'instruction SI si vous souhaitez que la comparaison insensible à la casse.Pourquoi les guillemets dans
set "INPUTDTO="
nécessaire? Je vous remercie.une fois formaté, comme je l'ai, avec l'ouverture de la soumission avant le nom de la variable, puis tout le texte après la dernière citation est ignoré. Il empêche les blancs de l'espace de la cession. Pas nécessaire si la ligne se termine comme il se doit, mais un bon coffre-fort de la garde.
Merci. Ressemble à une bonne méthodologie à suivre.
OriginalL'auteur dbenham
Si vous êtes ouvert à l'aide d'autres Logiciels, vous pouvez utiliser grep de GnuWin32. Il vous coûtera 1,5 MO
OriginalL'auteur Midhat
La logique est simple, tout d'abord supprimer toutes les occurrences de "DTO" à partir de votre chaîne d'origine et de le stocker dans une variable. Puis le comparer avec l'original
INTPUTDTO
variable en ajoutant un "DTO" à la fin.Aussi, si vous ne se soucient pas de script complexité, alors il suffit d'utiliser cette:
OriginalL'auteur Sean Vaughn
Peut-être vous pouvez utiliser la sous-chaîne-ing capacités comme décrit ici:Quelle est la meilleure façon de faire une sous-chaîne dans un fichier batch?.
Puis de comparer cette sous-chaîne contre "DTO".
OriginalL'auteur Anssssss