2009-05-27 5 views
3

ici est la portion de code me donner du mal:Problème avec l'entrée d'utilisateur dans mon fichier batch

IF EXIST TH_BUILD_* (
ECHO A current build of Test Harness exists. 
set /p delBuild=Delete preexisting build [y/n]?: 
if "%delBuild%"=="y" (GOTO deleteandcontinue) else (EXIT) 
) 

Pour une raison quelconque, peu importe l'entrée, les sorties de fichiers par lots. Pourquoi cela arrive-t-il (deleteandcontinue n'est jamais atteint)?

Merci!

Répondre

3

Essayez d'utiliser l'expansion retardée lors du test delBuild:

setlocal enableextensions enabledelayedexpansion 

IF EXIST TH_BUILD_* (
    ECHO A current build of Test Harness exists. 
    set /p delBuild=Delete preexisting build [y/n]?: 
    if "!delBuild!"=="y" (
     GOTO deleteandcontinue 
    ) else (
     exit 
    ) 
) 

:deleteandcontinue 
@echo At deleteandcontinue 

%var% variables sont lorsque la commande est lue. L'ensemble des commandes entre les parenthèses est traité comme une seule commande, donc delBuild n'existe pas quand vous allez tester. Avec l'expansion retardée, les variables sont étendues lorsque la commande est exécutée, donc au moment du test, delBuild a une valeur.

+0

Génial, merci! – Monster

Questions connexes