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

出于某种原因,无论输入如何,批处理文件都会退出。为什么会发生这种情况(永远无法达到删除和继续)?

谢谢!

4

1 回答 1

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%读取命令时扩展变量。括号之间的命令集被视为单个命令,因此delBuild在您进行测试时不存在。使用延迟扩展,变量在命令执行时被扩展,所以在测试的时候,delBuild有一个值。

于 2009-05-27T16:33:39.097 回答