我试图使这个工作在一个Windowsbatch file:
if not exist "%~n1.ext" ( set /P z="PROMPT (y,n)?" if /i "%z%" == "y" ( echo if is working ) )
但不pipeinput是什么,它都不会进入回声部分。 语法中有什么错误?
当你在一个块(在(
和)
之间使用一个变量时,你需要启用延迟扩展:
setlocal enabledelayedexpansion set var=hello if "a"=="a" ( set var=world echo %var% !var! )
斯蒂芬是正确的,你需要在使用嵌套变量时使用enabledlayedexpansion。 这里是你的语法代码(使用这种变量替换%
!
):
setlocal enabledelayedexpansion if not exist "%~n1.ext" ( set /P z="PROMPT (y,n)?" if /i "!z!" == "y" ( echo if is working ) )