中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-17 06:55
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 这个多选择批处理要如何完美实现...求助~~~(在线等_)~ 查看 3,201 回复 32
16 发表于 2006-11-22 09:29 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线

  Re baepyygy :

  我的代码是那样的啊,而你说的情况和代码的作用也是相符的啊。
 
  莫非你要实现其它的?
17 发表于 2006-11-22 09:34 ·  中国 广东 深圳 罗湖区 电信
初级用户
★★
积分 142
发帖 61
注册 2006-06-01 19:41
UID 56391
性别 男
状态 离线
关键是按”0“就退出了啊。。。应该是除了1-5.其它的任意键或组合键返回的都是提示码,然后重新运行程序丫!
18 发表于 2006-11-22 10:27 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线

  哦,明白了,把代码简单的改一下就成了。
19 发表于 2006-11-22 10:31 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线


@echo off
color e
:start
cls
set /p ok=请选择存档服务器(1-5):
if %ok% geq 1 (
if %ok% leq 5 (
if exist GameSave%ok% (Start GameSave%ok%\svClient.exe) else (goto wrong)
) else (goto wrong)
) else (goto wrong)
goto :eof

:wrong
echo 服务器不存在
echo 按任意键继续
>nul pause
goto start

  这样呢?  如果还有什么问题,请继续跟帖讨论。。
20 发表于 2006-11-22 10:35 ·  中国 广东 深圳 罗湖区 电信
初级用户
★★
积分 142
发帖 61
注册 2006-06-01 19:41
UID 56391
性别 男
状态 离线
现在按0,没有退出了。但是在按"1.“的情况下,还是会执行对应的程序。

另外问一下 goto :eof 是指向哪里的?
21 发表于 2006-11-22 11:09 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线
Originally posted by baepyygy at 2006-11-22 10:35:
现在按0,没有退出了。但是在按"1.“的情况下,还是会执行对应的程序。

另外问一下 goto :eof 是指向哪里的?


  因为"1."是大于"1"的,所以你输入"1.",if语句同样是真,所以会执行下面的程序。你不输入"1."不就可以了??

  goto :EOF 指向的是批处理文件的结尾。
22 发表于 2006-11-22 11:19 ·  中国 广东 深圳 罗湖区 电信
初级用户
★★
积分 142
发帖 61
注册 2006-06-01 19:41
UID 56391
性别 男
状态 离线
知道的情况下肯定不会按,如果不知道呢?还有没有办法改进下?
23 发表于 2006-11-22 11:30 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线

  如果你要改进的话,也行,不过代码会比较复杂。

  但是我个人感觉没有这个必要,因为批处理上面已经说得比较清楚了,"选择1-5",如果你要选择第一个,那你就输入1就行了,何必要输入1.呢?难不成你选第一项还输入123456……不成??
24 发表于 2006-11-22 11:35 ·  中国 广东 深圳 罗湖区 电信
初级用户
★★
积分 142
发帖 61
注册 2006-06-01 19:41
UID 56391
性别 男
状态 离线
呵呵呵 ,有些人很无聊的,没事就瞎搞。。然后说你的东西有问题。。。。
25 发表于 2006-11-22 11:40 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线

  那我无语了。

  这就像是要使用for命令,而把for命令写成了form一样。
26 发表于 2006-11-22 11:41 ·  中国 广东 深圳 罗湖区 电信
初级用户
★★
积分 142
发帖 61
注册 2006-06-01 19:41
UID 56391
性别 男
状态 离线
嗯,不过还是谢谢你了。。。。。。我还得慢慢消化一下这段代码!~~~
27 发表于 2006-11-24 03:57
中级用户
★★
DOS之日
积分 337
发帖 161
注册 2006-11-04 05:27
UID 69523
性别 男
状态 离线
16楼的代码,修改后.


@echo off
color e
:start
cls
set /p ok=请选择存档服务器(1-5):
if "%ok%" EQU "" goto start
if "%ok:~1,1%" NEQ "" goto start
if %ok% geq 1 (
if %ok% leq 5 (
if exist GameSave%ok% (Start GameSave%ok%\svClient.exe) else (goto wrong)
) else (goto wrong)
) else (goto wrong)
goto :eof

:wrong
echo 服务器不存在
echo 按任意键继续
>nul pause
goto start



11楼的代码,修改后.


@echo off&color e
:start
cls
set /p ok=请选择存档服务器(1-5):
if "%ok%" EQU "" goto start
if "%ok:~1,1%" NEQ "" goto start
if exist GameSave%ok% Start GameSave%ok%\svClient.exe&&goto :eof

echo 选择的存档服务器不存在,请重新选择.... &pause >nul
goto start


这样应该可以吧.

[ Last edited by hxuan999 on 2006-11-23 at 04:02 PM ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
redtek +1 2006-11-24 07:30
for /f %%h in (`echo hxuan`) do for /f %%x in (`echo hxuan`) do if %%h==%%x nul
28 发表于 2006-11-24 06:05 ·  中国 广东 深圳 电信
初级用户
★★
积分 142
发帖 61
注册 2006-06-01 19:41
UID 56391
性别 男
状态 离线
嗯,可以了..按1.不会运行程序..不过,也没有提示 请重新选择的提示哦~~~不过谢谢了....顺便问下,能不能解释下每行代码的含义啊!!
29 发表于 2006-11-24 06:16 ·  中国 广东 佛山 电信
初级用户
Q群:IT永恒国度367763 ...
积分 44
发帖 21
注册 2006-11-12 14:26
UID 70341
性别 男
状态 离线
各位都写得不错,我就不加参与了
Q群:IT永恒国度3677635 高明人上门维修电脑群28387927[维修软件总部]fsgm.ys168.com
30 发表于 2006-11-24 06:21 ·  中国 广东 深圳 电信
初级用户
★★
积分 142
发帖 61
注册 2006-06-01 19:41
UID 56391
性别 男
状态 离线
写出来看看撒
论坛跳转: