我的批處理腳本將用戶名與用戶名列表進行比較,如果用戶名變量位於用戶名列表中,則開始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'來查看它實際檢查的內容。 –