if /*some condition*/ set myvar=1
if defined myvar (
if %myvar% equ 1 (
echo Hurray
)
)
但是,我收到错误1 was not expected at this time
。使用echo,它会打印发生错误的if equ 1 (
。请告知如何解决这个问题。
答案 0 :(得分:0)
我已将/*some condition*/
替换为1==1
:
@echo off
if 1==1 set myvar=1
if defined myvar (
if %myvar% equ 1 (
echo Hurray
)
)
这完美无缺。所以错误必须在你的条件内。我想aschipfl对失踪的delayed expansion
是正确的。试试这个:
@echo off
setlocal enabledelayedexpansion
if /*some condition*/ set myvar=1
if defined myvar (
if !myvar! equ 1 (
echo Hurray
)
)
添加enabledelayedexpansion并使用!...!
代替%...%
包围您的变量。