我正在尝试在Windows批处理文件中完成这项工作:
if not exist "%~n1.ext" (
set /P z="PROMPT (y,n)?"
if /i "%z%" == "y" (
echo if is working
)
)
但无论输入是什么,它都不会进入回声部分。语法有问题吗?
答案 0 :(得分:2)
在块中使用变量时((
和)
之间),您需要启用延迟扩展:
setlocal enabledelayedexpansion
set var=hello
if "a"=="a" (
set var=world
echo %var% !var!
)
答案 1 :(得分:1)
Stephan是正确的,在使用嵌套变量时需要使用enabledlayedexpansion。以下是使用该语法的代码(在使用此类变量时将%
替换为!
):
setlocal enabledelayedexpansion
if not exist "%~n1.ext" (
set /P z="PROMPT (y,n)?"
if /i "!z!" == "y" (
echo if is working
)
)