Re gigacong:
echo
choice /c:12345 /n
if errorlevel 5 goto c_05
if errorlevel 4 goto C_04
if errorlevel 3 goto C_03
if errorlevel 2 goto C_02
if errorlevel 1 goto C_01
:C_01
这很可能是CHOICE的问题,请检查你的启动盘中的CHOICE版本是否正确,并且位于批处理可调用的路径。因为CHOICE无法执行时,系统的ERRORLEVEL一般会保持为零,另外在某些特殊情况下也会自动返回零值的ERRORLEVEL,所以所有的GOTO都将无法执行,以致于程序进程错乱。
这个错误引伸出了一个防御性程序设计的问题,虽然批处理是一种简单的脚本语言,但是在某些应用场合,我们仍然需要设计一些防御性代码,以免系统故发生故障时造成不必要的损失。在这个程序中,我们就需要在if errorlevel 1...之后加上一句 GOTO Error 或者简单的 GOTO End,防止因为各种原因(比如磁盘损坏导致CHOICE损坏或者CHOICE的路径未写进默认路径中)而导致Errorlevel为零时,程序进程窜入下面的功能模块,如果这个模块恰巧时自动格式化模块,那么损失将是严重的。