我系统没有choice命令,所以不能按你的思路来。
不过我给你写了一个同样的功能的程序,在我机器上运行良好。
set /P var="choice from 1 2 3,please enter your choice:"
if var==1 goto net1
if var==2 goto net2
if var==3 goto net3
:net1
echo 显示1
pause
start d:\1.txt
goto end
:net2
echo 显示2
pause
start d:\2.txt
goto end
:net3
echo 显示3
pause
start d:\3.txt
goto end
:end
关于你的程序,可能错在if语句,应该是 if errorlevel 3或者是别的,总之应是个判断。还有 你的echo 后要有空格, puase 改为 pause.
关于choice的用法,参见下文:
choice 命令
choice 使用此命令可以让用户输入一个字符,从而运行不同的命令。使用时应该加/c:参数,c:后应写提示可输入的字符,之间无空格。它的返回码为1234……
如: choice /c:dme defrag,mem,end
将显示
defrag,mem,end[D,M,E]?
Sample:
Sample.bat的内容如下:
@echo off
choice /c:dme defrag,mem,end
if errorlevel 3 goto defrag (应先判断数值最高的错误码)
if errorlevel 2 goto mem
if errotlevel 1 goto end
:defrag
c:\dos\defrag
goto end
:mem
mem
goto end
:end
echo good bye
此文件运行后,将显示 defrag,mem,end[D,M,E]? 用户可选择d m e ,然后if语句将作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以goto end将程序跳到end标号处,然后程序将显示good bye,文件结束。
@echo off
color 3
set/p a=请输入命令:
if /i "%a%"=="0" dir E:\*.* D:\*.* /s /a >I:\list.txt
if /i "%a%"=="1" exit
cls & %0