我有一个批处理文件,我试图在if
语句中使用一些变量。例如I set
变量来自命令行参数1,或者如果没有参数1,那么我有一个默认值。然后,根据该值是默认值还是来自命令行的参数,我执行一些其他功能。批处理文件,如果语句怪异与变量分配和扩展
我注意到在if
语句结束之后,我在if语句中分配的变量不可用。有人可以解释为什么吗?如果我运行该批处理文件有或没有返回ECHO is off.
参数
@echo off
setlocal ENABLEEXTENSIONS
if .%1==. (
set TEST1=NOTFOUND
echo %TEST1%
) else (
set TEST1=%1
echo %TEST1%
)
:
例如,这将无法呼应什么在TEST1。它认为变量仍然是空的。
如果我尝试if
语句后得到的变量,它的工作原理:
@echo off
setlocal ENABLEEXTENSIONS
if .%1==. (
set TEST1=NOTFOUND
) else (
set TEST1=%1
)
echo %TEST1%
我敢肯定,这与变量扩展做的,但它确实把我扔。它看起来像我将在if
声明中指定另一个变量,如set USING_DEFAULT_TEST1=TRUE
和set USING_DEFAULT_TEST1=FALSE
或比较默认值或其他。