这是代码中给我带来麻烦的部分:
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)?
谢谢!
答案 0 :(得分: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
具有值。