[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 【已解决】批处理if命令求助:根据用户输入执行相应程序?

下面的内容存为1.bat运行后。不管输入什么。倒数第三句好象没有执行!
为什么会这样?还望高手指点!!!!
@ echo off
:1
set /p var=————
if "%var%"=="3" start D:\Tencent\QQ2009\Bin\QQ.exe
if "%var%"=="4" start D:\age2.exe
if "%var%"=="5" start F:\1
if "%var%"=="e" exit
if errorlevel 1 echo 失败!else echo 成功!
pause
goto 1

[ 本帖最后由 kingerpk 于 2009-1-27 21:04 编辑 ]

我记得if .. else 里,至少 else 前面的命令要用括号

TOP

1、语句写法上有错误else前面须有()
2、你这样写,不管下面的四条if语句有没有执行,set /p var=---------肯定执行,也就是不管你输入什么数字%errorlevel%恒为0,所以输出的永远是成功!

TOP

楼上不能这样分析。。。

如果说%var%不为3、4、5、e时,的确%errorlevel%恒为0,这样if就等于无效
%var%为3、4、5时,如果start执行失败,那么if才会生效

TOP

请教一下啊。
为什么我在  start  后面跟上别的程序的路径时,运行后并不能打开预期的程序。总是会又打开一个 cmd  窗口。
比如:      if "%var%"=="5" start "%userprofile%\桌面\test.txt"

这是怎么回事啊?

TOP

回复 5楼 的帖子

因为少了一对双引号
  1. if "%var%"=="5" start "" "%userprofile%\桌面\test.txt"
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

运行成功,非常感谢。又会一招,呵呵。

TOP

返回列表