Board logo

标题: [注册表类] 求分析批处理命令IF GOTO [打印本页]

作者: lky216    时间: 2012-6-20 13:36     标题: 求分析批处理命令IF GOTO

本帖最后由 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
复制代码

作者: weichenxiehou    时间: 2012-6-20 16:27

一般是在每个菜单末尾加goto :eof或exit/b,强制替换?你是指添加注册表项的时候吗?加个/f参数就行了吧。
作者: sunzhiguolu    时间: 2012-6-20 17:08

本帖最后由 sunzhiguolu 于 2012-6-20 17:14 编辑

回复 2# weichenxiehou
代码不必变化,在标签6,7的后面再加一个goto语句即goto End
下一个标签放在最后位置:
:End
exit
作者: weichenxiehou    时间: 2012-6-20 18:00

回复 3# sunzhiguolu
请学习goto :eof的作用,批处理有:eof这个批处理默认标签,表示文件尾。
作者: lky216    时间: 2012-6-21 15:09

回复 2# weichenxiehou


    /f 在reg add 后面不行 代码后面的/v那些有/旁边也不行
作者: weichenxiehou    时间: 2012-6-21 15:18

回复 5# lky216
一般是加到每条reg add命令的最后。
作者: cjiabing    时间: 2012-6-21 15:32

  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 菜单
复制代码

作者: lky216    时间: 2012-6-21 15:33

回复 6# weichenxiehou


    几乎空格的地方都弄了,除了"reg add"这个空格,不行啊,亲
作者: lky216    时间: 2012-6-21 15:37

回复 7# cjiabing


    这个方法不错,跳回菜单,不过cls是清除显示的哦,会删掉前面和后面的显示ECHO




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2