中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-22 21:54
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » CHOICE用法........ 查看 1,349 回复 6
楼 主 CHOICE用法........ 发表于 2007-11-19 21:23 ·  中国 吉林 长春 联通
初级用户
积分 20
发帖 8
注册 2007-11-01 12:12
18年会员
UID 101371
性别 女
状态 离线
我做了两个更改IP地址的批处理文件,现在想再做一个批处理文件实现我需要运行哪个更改IP的文件.

如两个更改IP的文件分别为:

C:\test\a.bat
C:\test\b.bat

我想做个c.bat,运行后提示我按Y执行a.bat,按N执行b.bat.

在网上查了不少批处理的命令与资料,苦于新手不得要领,还请各位高手指教。

我看网上不少帖子中都说批处理命令中的"choice"命令,加/c参数,可以实现根据输入值不同而执行不同的结果,可我设置后并不好用,在winXP在执行含有choice的文件,一闪即逝,根据没有等我输入参数,而在cmd下执行这个bat却提示我:'choice' 不是内部或外部命令,也不是可运行的程序.

怎么回事呢?
2 发表于 2007-11-19 22:58 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线
用set /p来代替choice吧


@echo off
set /p choice=请输入:
if /i "%choice%"=="y" C:\test\a.bat
if /i "%choice%"=="n" C:\test\b.bat
3 发表于 2007-11-20 09:41 ·  中国 吉林 长春 联通
初级用户
积分 20
发帖 8
注册 2007-11-01 12:12
18年会员
UID 101371
性别 女
状态 离线
多谢版主,我一会就试试。
4 发表于 2007-11-20 21:30 ·  中国 吉林 长春 联通
初级用户
积分 20
发帖 8
注册 2007-11-01 12:12
18年会员
UID 101371
性别 女
状态 离线
版主,我按你的方法写了如下代码:

@echo off
set /p choice=家用IP请按Y,公司IP请按N:
if /i "%choice%"=="y" D:\IP_config_B_CN.bat
if /i "%choice%"=="n" D:\IP_config_A_CN.bat

这样做的确可以实现我的要求,我把这个代码加下了Autoexec.bat文件里,希望系统启动时执行这个,可是我重启机器后并没有反应。。。。

你知道是什么原因吗?难道要我把批处里文件加在startup中去?
5 发表于 2007-11-20 21:35 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线
对于Windows XP里面的Autoexec.bat文件,除了设置环境变量以及某几个命令,系统不再解释里面的其它命令,所以你写的IF语句无效。

可以将你写的脚本放“启动”文件夹里面,或者在注册表相应位置添加启动项。
6 发表于 2007-11-21 12:09 ·  中国 吉林 长春 联通
初级用户
积分 20
发帖 8
注册 2007-11-01 12:12
18年会员
UID 101371
性别 女
状态 离线
..........

看来只有这样了.

按上面的代码我必须按Y或N或然后回车才执行,有没有办法让我输入Y或N或就自动执行,无须我再按回车。

谢谢。
7 发表于 2007-11-21 18:21 ·  中国 广东 深圳 电信
初级用户
★★
积分 167
发帖 95
注册 2007-05-06 09:19
19年会员
UID 87628
性别 男
状态 离线
也可以放到启动里边`~让他自动运行啊`?
论坛跳转: