Board logo

标题: 用IF-ELSE时出错 [打印本页]

作者: yaoview     时间: 2008-7-7 14:53    标题: 用IF-ELSE时出错

我编写一个小的扫描有没有闪存的批处理时,用IF--ELSE时,老出现"ELSE既不是DOS内部命令,也不是可执行文件"的出错提示.
if exist h:\nul copy .........
else msg......
作者: WANKOILZ     时间: 2008-7-7 14:56
if exist h:\nul (copy .........
) else (msg...... )
else的 e 要和if的 f 擦边。
作者: HAT     时间: 2008-7-7 16:27
尽快学会看帮助
if /?

  Quote:
The ELSE clause must occur on the same line as the command after the IF.  For
example:

    IF EXIST filename. (
        del filename.
    ) ELSE (
        echo filename. missing.
    )


作者: bat-zw     时间: 2008-7-7 17:47
为了加深兄弟理解,写了个实用例子:
@echo off
rem if...else...实例应用:判断输入数字的区域
:set
cls&set /p num=请输入0-50间的数字:
echo %num%|findstr "[^0-9]">nul&&goto wrong
if "%num: =%" gtr "50" goto wrong
for %%i in (10 20 30 40 50) do if %%i equ %num% cls&echo %num%=%%i&pause>nul&goto :eof
if %num% lss 10 (
   cls&echo %num%^<10
   ) else (
   if %num% lss 20 (
      cls&echo 10^<%num%^<20
      ) else (
      if %num% lss 30 (
         cls&echo 20^<%num%^<30
         ) else (
         if %num% lss 40 (
            cls&echo 30^<%num%^<40
            ) else (
            cls&echo 40^<%num%^<50
))))
pause>nul&goto :eof
:wrong
cls&echo 请正确输入!&&ping /n 2 127.1>nul&&goto set

作者: qzwqzw     时间: 2008-7-8 12:24
没有擦边(缩进对齐)的必要
只要保证else前面有()就可以了

比如这样
if exist c:\s (echo test) else echo dd
作者: WANKOILZ     时间: 2008-7-8 22:01
好象确实不必擦边,差点误导,抱歉......
作者: pusofalse     时间: 2008-7-8 22:04
任何一种编程语言,编写格式都是很重要的。。。^_^