2009-05-27 122 views
3

這裏用戶輸入的代碼給我找麻煩的部分:問題,在我的批處理文件

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從未達到)?

謝謝!

回答

3

測試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%變量被擴展。在parens之間的命令集被視爲單個命令,因此delBuild在您測試時不存在。通過延時擴展,變量在命令執行時被擴展,所以在測試時,delBuild有一個值。

+0

太棒了,謝謝! – Monster 2009-05-27 16:59:11