这是给我麻烦的代码部分:
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)
)
由于某种原因,无论输入如何,批处理文件都会退出。为什么会发生这种情况(从未达到删除和继续)?
谢谢!
最佳答案
在测试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
具有值。