if的语法不正确。删去if那两行,把ping 192.168.0.1改成ping 192.168.0.1 || goto b && goto a试试。||的意思是执行失败就执行后面的指令&&的意思是执行成功就执行后面的指令%errorlevel%在除了choice指令以外的所有指令中和if搭配起来都不协调,因为它的值有些指令会随机,有些指令会反馈固定的值,并且类似于del指令,反馈的errorlevel直接是个反的,所以建议不要用%errorlevel%判定的办法。