我的批处理脚本将用户名与用户名列表进行比较,如果用户名变量位于用户名列表中,则开始notepad.exe
。否则,打印号码。我正在使用GOTO来做这件事。IF语句中的GOTO批处理语法
所以如果用户名在列表中,转到match1
并启动记事本。否则,转到match2
和打印号码。但是,即使用户名在列表中,它总是会转到else部分并且不打印。这里是我的代码: -
@ECHO OFF
set user=username1
set list=username3 username2 username1
(FOR %%a IN (%list%) DO (if %user%==%%a (GOTO MATCH1
) else (GOTO MATCH2
)
))
:MATCH1
notepad.exe
:MATCH2
echo no
pause
然而,当我榜上无名这种方式,启动记事本并打印无: -
set list=username1 username2 username3
请注意,我这样做不使用GOTO的时候,它的工作好。例如,如果有匹配,启动记事本,否则,打印号码。我是否以错误的方式使用GOTO?还是我误解了GOTO的功能?
尝试在循环中添加一个'ECHO %% a'来查看它实际检查的内容。 –