NGなBATファイル
tset.bat
@echo off
set val=123
set num=456
if %val%==123 (
if %num%==456 (
goto hoge
)
echo sakura
:hoge
echo warabi
)
これを実行した結果は以下
C:\Users\Administrator\Desktop>test.bat
コマンドの構文が誤っています。
OKなBATファイル
test.bat
@echo off
set val=123
set num=456
if %val%==123 (
if %num%==456 (
goto hoge
)
echo sakura
:hoge
echo warabi
)
これを実行した結果は以下
C:\Users\Administrator\Desktop>test.bat
warabi
おわかりいただけただろうか。
原因&対処
if()
のなかのgotoラベル
は直後にコマンドが無いと駄目らしい。
1つ目と2つ目の違いは:hoge
の直後に空行があるかないか、だけである。
コマンドならなんでもよくて、コメント文であるrem
でもいい。
test.bat
@echo off
set val=123
set num=456
if %val%==123 (
if %num%==456 (
goto hoge
)
echo sakura
:hoge
rem #本日は晴天なり
echo warabi
)
goto
使ってコマンドの構文が誤っています
と言われた場合はチェックしてみてください。
あとif()
の中でなければ問題はない
test.bat
@echo off
goto hoge
:hoge
echo warabi