中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-16 18:17
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » xp下如何智能启动多程序批处理命令!<圆满结帖> 查看 2,509 回复 13
楼 主 xp下如何智能启动多程序批处理命令!<圆满结帖> 发表于 2005-11-07 20:21 ·  中国 湖北 孝感 汉川市 电信
新手上路
积分 18
发帖 7
注册 2005-11-07 20:18
UID 44777
状态 离线
我想做一个批处理文件,实现启动多个程序用。
比如按下1就启动QQ,
按下2就启动IE,
按下3就启动BT
按下回车就退出命令窗口。

拟用Start和GOTO命令实现,请教高手:怎么样才能等待并判断键盘输入??
----------------------------------------------------------------------
『第 5 楼』: 请帮我看看这样哪里出问题了,怎么在xp下没反映啊?

@ echo 1.启动QQ-1
@ echo 2.启动BT下载
@ echo 3.启动Maxthon浏览器
@ echo 4.启动QQ-2
@ echo 0.退出

choice /c 12340 /m "请选择需要启动的程序代号:"
if errorlevel 5 goto end
if errorlevel 4 goto qq2
if errorlevel 3 goto myie
if errorlevel 2 goto bt
if errorlevel 1 goto qq1

:qq2
start D:\Progra~1\Tencent\qq1\CoralQQ.exe

:myie
start D:\Maxthon\Maxthon.exe

:bt
start D:\Progra~1\BitComet\BitComet.exe

:qq1
start D:\Progra~1\Tencent\qq\CoralQQ.exe

:end
exit

[ Last edited by cjw114 on 2005-11-12 at 00:34 ]
2 发表于 2005-11-07 20:43 ·  中国 广东 广州 教育网
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
UID 7105
性别 男
状态 离线
choice
但要用返回码识别的
3 发表于 2005-11-07 21:24 ·  中国 广东 广州 白云区 电信
荣誉版主
★★★
积分 718
发帖 313
注册 2005-09-26 00:00
UID 42844
性别 男
状态 离线
请查对你的XP中有没有CHOICE.COM 。
4 发表于 2005-11-07 21:28 ·  中国 湖北 孝感 汉川市 电信
新手上路
积分 18
发帖 7
注册 2005-11-07 20:18
UID 44777
状态 离线
没有哦,怎么办?哪里有呢?
5 发表于 2005-11-07 21:34 ·  中国 广东 广州 白云区 电信
荣誉版主
★★★
积分 718
发帖 313
注册 2005-09-26 00:00
UID 42844
性别 男
状态 离线
http://www.cn-dos.net/forum/viewthread.php?tid=17250&fpage=1&highlight=choice

Michael朋友送的。(不过在我这XP中运行有点问题)
6 发表于 2005-11-07 21:38 ·  中国 湖北 孝感 汉川市 电信
新手上路
积分 18
发帖 7
注册 2005-11-07 20:18
UID 44777
状态 离线
谢谢!
7 发表于 2005-11-07 21:40 ·  中国 湖北 孝感 汉川市 电信
新手上路
积分 18
发帖 7
注册 2005-11-07 20:18
UID 44777
状态 离线
咋还是不行捏????急死我鸟!
那个choice感觉不大对劲,xp下变dos窗口变英文了。。
还有其他方法吗?

[ Last edited by cjw114 on 2005-11-7 at 21:45 ]
8 发表于 2005-11-07 21:51 ·  中国 广东 广州 白云区 电信
荣誉版主
★★★
积分 718
发帖 313
注册 2005-09-26 00:00
UID 42844
性别 男
状态 离线
Originally posted by cjw114 at 2005-11-7 21:40:
咋还是不行捏????急死我鸟!
那个choice感觉不大对劲,xp下变dos窗口变英文了。。
还有其他方法吗?

[ Last edited by cjw114 on 2005-11-7 at 21:45 ]


我也是发现这个问题.
得请下 Michael 帮忙指导下.
9 我又弄了一个,可是只能分两步,有没有更好的办法啊? 发表于 2005-11-07 22:00 ·  中国 湖北 孝感 汉川市 电信
新手上路
积分 18
发帖 7
注册 2005-11-07 20:18
UID 44777
状态 离线
@ echo 按下键盘启动QQ1+BT+MyIE程序,再按一下启动QQ2,要退出请关闭此窗口!
pause
start D:\Progra~1\Tencent\qq\CoralQQ.exe
start D:\Progra~1\BitComet\BitComet.exe
start D:\Maxthon\Maxthon.exe

pause
start D:\Progra~1\Tencent\qq1\CoralQQ.exe

--------------------------------
10 发表于 2005-11-08 17:00 ·  中国 河北 石家庄 联通
新手上路
积分 3
发帖 2
注册 2005-11-01 11:55
UID 44402
状态 离线
按照你的意思,写了一个,仅做参考


@echo off
echo 1.启动QQ-1
echo 2.启动BT下载
echo 3.启动Maxthon浏览器
echo 4.启动QQ-2
echo 0.退出
:INPUT
set /p Input_=请选择需要启动的程序代号:
if %Input_% == "4" goto QQ2
if %Input_% == "3" goto MYIE
if %Input_% == "2" goto BT
if %Input_% == "1" goto QQ1
if %Input_% == "0" goto END
echo 输入了错误参数.请重试.
goto INPUT
:END
@echo on
exit

:QQ2
start D:\Progra~1\Tencent\qq1\CoralQQ.exe
goto END

:MYIE
start D:\Maxthon\Maxthon.exe
goto END

:BT
start D:\Progra~1\BitComet\BitComet.exe
goto END

:QQ1
start D:\Progra~1\Tencent\qq\CoralQQ.exe
goto END

[ Last edited by Archimonde on 2005-11-8 at 17:25 ]
11 发表于 2005-11-09 22:13 ·  中国 福建 漳州 电信
中级用户
★★
带走
积分 435
发帖 88
注册 2005-09-24 19:22
UID 42793
状态 离线
加一句

set Input_=%Input_:~0,1%

否则输入的字符多出来时会出错~
12 发表于 2005-11-10 12:47 ·  中国 湖北 孝感 电信
新手上路
积分 18
发帖 7
注册 2005-11-07 20:18
UID 44777
状态 离线
经试验,Archimonde 同志的命令总是出错,无论输入什么字符都不行。
请重新输入
13 发表于 2005-11-10 17:54 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
UID 42843
性别 男
来自 四川南充
状态 离线
按照你的意思,写了一个,仅做参考
@echo off
echo 1.启动QQ-1
echo 2.启动BT下载
echo 3.启动Maxthon浏览器
echo 4.启动QQ-2
echo 0.退出
:INPUT
set /p In=请选择需要启动的程序代号:
set In=%In:~0,1%
if #%In% ==#4 goto QQ2
if #%In% ==#3 goto MYIE
if #%In% == #2 goto BT
if #%In% == #1 goto QQ1
if #%In% == #0 goto END
echo 输入了错误参数.请重试.
goto INPUT
:END
@echo on
exit

:QQ2
start D:\Progra~1\Tencent\qq1\CoralQQ.exe
goto END

:MYIE
start D:\Maxthon\Maxthon.exe
goto END

:BT
start D:\Progra~1\BitComet\BitComet.exe
goto END

:QQ1
start D:\Progra~1\Tencent\qq\CoralQQ.exe
:END
14 感谢Archimonde和q版主,经测试运行正常<结帖>!! 发表于 2005-11-12 00:31 ·  中国 湖北 孝感 电信
新手上路
积分 18
发帖 7
注册 2005-11-07 20:18
UID 44777
状态 离线
最后应返回 INPUT函数,因此最终代码如下:
@echo off
echo 1.启动QQ-1
echo 2.启动BT下载
echo 3.启动Maxthon浏览器
echo 4.启动QQ-2
echo 0.退出

:INPUT
set /p In=请选择需要启动的程序代号:
set In=%In:~0,1%
if #%In% ==#4 goto QQ2
if #%In% ==#3 goto MYIE
if #%In% == #2 goto BT
if #%In% == #1 goto QQ1
if #%In% == #0 goto END
echo 输入了错误参数.请重试.
goto INPUT

:END
@echo on
exit

:QQ2
start D:\Progra~1\Tencent\qq1\CoralQQ.exe
goto INPUT

:MYIE
start D:\Maxthon\Maxthon.exe
goto INPUT

:BT
start D:\Progra~1\BitComet\BitComet.exe
goto INPUT

:QQ1
start D:\Progra~1\Tencent\qq\CoralQQ.exe
goto INPUT
论坛跳转: