IF DEFINED variable command
:: if defined xxx 是判断xxx是否被定义为变量名的 @echo off set num=abc :: 这时num被定义为变量名,而abc是变量num的值 :: 所以以下会显示num ok,因为num被定义了. if defined num (echo num ok) else echo num no pause :: 此时abc未被定义,也就是说还没有abc这个变量名, :: 而变量num的值是abc,所以这句if是判断num的值是否被定义,而不是判断num是否被定义. if defined %num% (echo abc ok) else echo abc no pause :: 如下:将abc定义一下,结果就不同了. set abc=hhh if defined %num% (echo abc ok) else echo abc no pause