中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]着急!为什么goto 语句不好使!
作者:
标题: [求助]着急!为什么goto 语句不好使! 上一主题 | 下一主题
tempuser
高级用户





积分 547
发帖 261
注册 2006-4-15
状态 离线
『楼 主』:  [求助]着急!为什么goto 语句不好使!

我是一个新手,自己参考网写了这个批处理,可是总是出现问题,请看如下 @echo off mode con cols=55 lines=20 ::mode con cols=20 lines=20&color c,也行, color 2e ::先背景,后前景 title WINXP服务自动优化 pause :house @echo ==================================================== @echo. @echo 菜单选择 @echo 1.逐步优化服务 @echo 2.快速优化服务 @echo 3.恢复服务默认值 @echo. @echo ==================================================== set /p menu=请输入菜单选项(1、2或3) if %menu% equ 1 goto :youhua if %menu% equ 2 goto :fast if %menu% equ 3 goto :default :youhua cls @echo ==================================================== @echo. @echo title 逐步优化服务 @echo 列出了微软对--- 服务功能 ---的详细描述 @echo 列出了服务的--- 依存和被依存 ---关系 @echo 列出了服务的--- 默认值 ---和--- 优化后的值 --- @echo. @echo ==================================================== @echo 中途停止程序运行可按“Ctrl+C”组合键 pause cls @echo 显示名称:Alerter @echo 微软:通知所选用户和计算机有关系统管理级警报。如果服务停止,使用管理警报的程序将不会收到它们。 @echo 补充:一般用户不需要传送或接收计算机系统管理来的警示(Administrative Alerts),除非你的计算机用在局域网络上。 @echo 依存:Workstation @echo 被依存:无 @echo 默认:已禁用 @echo 建议:已禁用 sc config Alerter start= DISABLED pause cls @echo 逐步优化服务已完成 pause cls @echo ==================================================== @echo. @echo 1.返回上一级菜单 @echo 2.退出 @echo. @echo ==================================================== set /p menu1=请输入菜单选择项(1或2) if %menu1% equ 1 goto :house if %menu1% equ 2 goto :eof 我的问题是在我输入1,应该返回主菜单啊!可是现在输入1还是2都是退出,我的错误在哪里!


2007-11-7 08:47
查看资料  发短消息 网志   编辑帖子  回复  引用回复
abcd
银牌会员





积分 1436
发帖 739
注册 2007-10-11
状态 离线
『第 2 楼』:  

f %menu% equ 3 goto :default :youhua 上面两行直接最好有个判断,如果输入的值不是1、2、3中的任何一个的话,就会自动执行youhua这个标签了 if %menu1% equ 1 goto :house if %menu1% equ 2 goto :eof 这里也有一样 的问题,输入的值非1、非2 的话,也会自动退出的。


2007-11-7 09:00
查看资料  发短消息 网志  OICQ (470237592)  编辑帖子  回复  引用回复
tempuser
高级用户





积分 547
发帖 261
注册 2006-4-15
状态 离线
『第 3 楼』:  如何输写判断呢?

f %menu% equ 3 goto :default :youhua 上面两行直接最好有个判断,如果输入的值不是1、2、3中的任何一个的话,就会自动执行youhua这个标签了 if %menu1% equ 1 goto :house if %menu1% equ 2 goto :eof 这里也有一样 的问题,输入的值非1、非2 的话,也会自动退出的。 但是我输入的是1啊!为什么不执行goto :house呢?


2007-11-7 09:06
查看资料  发短消息 网志   编辑帖子  回复  引用回复
abcd
银牌会员





积分 1436
发帖 739
注册 2007-10-11
状态 离线
『第 4 楼』:  

因为你把goto写在if的下面一行了,要同一行 if %menu1% equ 1 goto :house if %menu1% equ 2 goto :eof


2007-11-7 09:14
查看资料  发短消息 网志  OICQ (470237592)  编辑帖子  回复  引用回复
tempuser
高级用户





积分 547
发帖 261
注册 2006-4-15
状态 离线
『第 5 楼』:  

谢谢,解决了。


2007-11-7 09:47
查看资料  发短消息 网志   编辑帖子  回复  引用回复
knoppix7
银牌会员





积分 1287
发帖 634
注册 2007-5-2
来自 cmd.exe
状态 离线
『第 6 楼』:  

最好用 IF "menu1"=="1" goto :house 万一输入 &|什么的就可能


2007-11-7 10:43
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ldr2zjj
初级用户





积分 167
发帖 95
注册 2007-5-6
状态 离线
『第 7 楼』:  

Originally posted by knoppix7 at 2007-11-7 10:43 AM: 最好用 IF "menu1"=="1" goto :house 万一输入 &|什么的就可能
会怎么样???能解释一下吗??


2007-11-11 03:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
aggov
新手上路





积分 12
发帖 6
注册 2007-11-7
状态 离线
『第 8 楼』:  

哈哈哈,高手多阿


2007-11-11 09:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: