試してないけど怪しそうなとこ
if (ErrorLevel == 0 or state = "D")

if () と if カッコなし は記述ルールの違いが紛らわしいんで
なるべく混在させないほうがいいよ