2009-05-27 5 views
3

hier ist der Teil des Codes gibt mir Mühe:Problem mit Benutzereingaben in meiner Batch-Datei

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) 
) 

Aus irgendeinem Grund, unabhängig von der Eingabe, die Batch-Datei beendet. Warum passiert das (deleteandcontinue wird nie erreicht)?

Danke!

Antwort

3

Versuchen verzögerte Expansion zu verwenden, wenn delBuild Prüfung:

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% Variablen erweitert werden, wenn der Befehl gelesen wird. Der Befehlssatz zwischen den Parens wird als ein einzelner Befehl behandelt, daher existiert delBuild nicht, wenn Sie zum Test gehen. Bei der verzögerten Erweiterung werden die Variablen beim Ausführen des Befehls erweitert, so dass zum Zeitpunkt des Tests delBuild einen Wert hat.

+0

Super, danke! – Monster

Verwandte Themen