找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 29255|回复: 8

[注册表类] 求分析批处理命令IF GOTO

[复制链接]
发表于 2012-6-20 13:36:14 | 显示全部楼层 |阅读模式
本帖最后由 lky216 于 2012-6-20 15:58 编辑

如下代码
1.选择菜单6,它会运行菜单6和菜单7,因为菜单6运行玩后,按任意键后,运行到菜单7。
2.而选择菜单7,后面没有了,也就是菜单7而已

1.怎么办的好方活才能选择菜单6,不运行菜单七(注:pause改为exit就不会了,还是都不加Pause好了。。)
2.另求,已经存在是否替换 怎么强制替换,谢谢!

代码简略如下:
  1. @echo off&
  2. ::选择菜单
  3. set /p choice=请选择:
  4. if /i "%choice%"=="6" goto 6
  5. if /i "%choice%"=="7" goto 7

  6. ::菜单六------------------------------------------------------------------------------------------------------------------
  7. :6
  8. reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\GloballyOpenPorts\List" /v 19006:TCP /t REG_SZ /d 19006:TCP:*:Enabled:19006"

  9. reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List" /v D:\ZoneServerGroup\rungate\GateServer\ChinGateServer.exe /t REG_SZ /d D:\ZoneServerGroup\rungate\GateServer\ChinGateServer.exe:*:Enabled:ChinGateServer
  10. pause

  11. ::菜单七------------------------------------------------------------------------------------------------------------------
  12. :7
  13. reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\GloballyOpenPorts\List" /v 19006:TCP /t REG_SZ /d 19006:TCP:27.154.56.194/255.255.255.255:Enabled:19006"
  14. reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List" /v D:\ZoneServerGroup\rungate\GateServer\ChinGateServer.exe /t REG_SZ /d D:\ZoneServerGroup\rungate\GateServer\\ChinGateServer.exe:27.154.56.194/255.255.255.255:Enabled:ChinGateServer
  15. pause
复制代码
发表于 2012-6-20 16:27:45 | 显示全部楼层
一般是在每个菜单末尾加goto :eof或exit/b,强制替换?你是指添加注册表项的时候吗?加个/f参数就行了吧。
发表于 2012-6-20 17:08:16 | 显示全部楼层
本帖最后由 sunzhiguolu 于 2012-6-20 17:14 编辑

回复 2# weichenxiehou
代码不必变化,在标签6,7的后面再加一个goto语句即goto End
下一个标签放在最后位置:
:End
exit
发表于 2012-6-20 18:00:56 | 显示全部楼层
回复 3# sunzhiguolu
请学习goto :eof的作用,批处理有:eof这个批处理默认标签,表示文件尾。
 楼主| 发表于 2012-6-21 15:09:07 | 显示全部楼层
回复 2# weichenxiehou


    /f 在reg add 后面不行 代码后面的/v那些有/旁边也不行
发表于 2012-6-21 15:18:18 | 显示全部楼层
回复 5# lky216
一般是加到每条reg add命令的最后。
发表于 2012-6-21 15:32:15 | 显示全部楼层

  1. @echo off

  2. :菜单
  3. cls
  4. set /p choice=请选择:

  5. if /i "%choice%"=="6" goto 6

  6. if /i "%choice%"=="7" goto 7
  7. goto 菜单

  8. :6
  9. echo 我是标签 6
  10. pause
  11. goto 菜单

  12. :7
  13. echo 我是标签 7
  14. pause
  15. goto 菜单


复制代码
 楼主| 发表于 2012-6-21 15:33:51 | 显示全部楼层
回复 6# weichenxiehou


    几乎空格的地方都弄了,除了"reg add"这个空格,不行啊,亲
 楼主| 发表于 2012-6-21 15:37:52 | 显示全部楼层
回复 7# cjiabing


    这个方法不错,跳回菜单,不过cls是清除显示的哦,会删掉前面和后面的显示ECHO
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 04:53 , Processed in 0.018880 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表