私のバッチスクリプトはユーザ名のリストとユーザ名のリストを比較し、ユーザ名のリストがユーザ名のリストにある場合はnotepad.exe
を開始します。それ以外は、no。私はGOTOを使ってこれをやっています。IFステートメントバッチSciptでGOTO
ユーザ名がリストにある場合は、match1
に移動してメモ帳を起動します。それ以外の場合はmatch2
と印刷してください。しかし、ユーザ名がリストにある場合でも、常にelse部分に行き、noを出力します。ここに私のコードは次のとおりです。 - 、しかし
@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を使用せずにこれをしたとき、それが働いていることに注意してくださいよくたとえば、一致するものがあれば、メモ帳を起動し、それ以外の場合はnoを入力します。 GOTOを間違った方法で使用していますか?それともGOTOの機能を誤解したのですか?
ループ内に 'ECHO %% a'を追加して、実際に何が確認されているかを確認してください。 –