中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决]批处理执行时如何直接跳到第十行?
作者:
标题: [已解决]批处理执行时如何直接跳到第十行? 上一主题 | 下一主题
nghr
初级用户





积分 88
发帖 34
注册 2007-10-20
状态 离线
『楼 主』:  [已解决]批处理执行时如何直接跳到第十行?

假设有十五行代码,执行时第二行有个判断,当条件附合时直接跳到第十行继续执行,请知道的朋友指点一下

[ Last edited by nghr on 2007-10-21 at 06:02 PM ]

2007-10-21 15:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 2 楼』:  

goto语句

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





积分 88
发帖 34
注册 2007-10-20
状态 离线
『第 3 楼』:  



  Quote:
Originally posted by slore at 2007-10-21 03:11 PM:
goto语句

goto只是跳转到标记..........能直接跳到那一行的吗?
goto +8是这样?

2007-10-21 15:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 4 楼』:  

在那行前面加上标记……

2007-10-21 15:22
查看资料  发短消息 网志   编辑帖子  回复  引用回复
nghr
初级用户





积分 88
发帖 34
注册 2007-10-20
状态 离线
『第 5 楼』:  

@echo off
dir /b |findstr /i "KB" >hotfix.txt
setlocal EnableDelayedExpansion
for /f "delims=" %%a in (hotfix.txt) do (
set var=%%a
set var=!var:kb=#!
set var=!var:*#=!
for /f "tokens=1 delims=-." %%b in ("!var!") do (
if exist kb%%b @echo 更新kb%%已经取提,现在提取第一备份更新 kb%%b_2 ,请您手工分析 && @%%a /x:.\qfe_bak_kb%%b_2 /q && goto :bak
if exist kb%%b_2 @echo 更新kb%%_2已经取提,现在提取第二备份更新 kb%%b_3 ,请您手工分析 && @%%a /x:.\qfe_bak_kb%%b_3 /q && goto :bak
@echo 正在提取Windows_XP_Sp2_QFE 更新 kb%%b ,请稍等 && @%%a /x:.\qfe_bak_kb%%b /q
@echo off
md .\KB%%b
move .\qfe_bak_kb%%b\update .\kb%%b
move .\qfe_bak_kb%%b\sp2qfe .\kb%%b
rd .\qfe_bak_kb%%b /s /q
if exist KB%%b\update\update_SP1QFE.inf del kb%%b\update\update_SP1QFE.inf /q
if exist KB%%b\update\update_SP1GDR.inf del kb%%b\update\update_SP1GDR.inf /q
if exist KB%%b\update\update_SP2GDR.inf del kb%%b\update\update_SP2GDR.inf /q
@echo Windows_XP_Sp2_QFE 更新 kb%%b 已制作完成!
:bak
))
del hotfix.txt /q
pause

按你的方法,我修改了批处理,可还是不能执行

2007-10-21 15:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
nghr
初级用户





积分 88
发帖 34
注册 2007-10-20
状态 离线
『第 6 楼』:  

:bak
@echo Windows_XP_Sp2_QFE 更新 kb%%b 已制作完成!
交换了这两个语句的位置就可以了,不知道什么原因

2007-10-21 15:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
nghr
初级用户





积分 88
发帖 34
注册 2007-10-20
状态 离线
『第 7 楼』:  

for里面使用了goto命令后果就是直接不能解析))的意义了,汗

2007-10-21 16:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 8 楼』:  

要回来的话call……P里结构不是很好掌握

2007-10-21 16:10
查看资料  发短消息 网志   编辑帖子  回复  引用回复
nghr
初级用户





积分 88
发帖 34
注册 2007-10-20
状态 离线
『第 9 楼』:  

call 之后还会继续执行下一行!

2007-10-21 16:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 10 楼』:  

不想执行?那再跳!你可以跳到到eof,也可以直接exit

2007-10-21 16:22
查看资料  发短消息 网志   编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 11 楼』:  

你是想在for语句里,通过条件判断来执行命令吧?
你这样问,谁能听的懂啊?
在for里最好不要使用标签.
灵活运用if 条件 命令 else 命令   就可以实现.
你的代码写的太乱了,换个简单点的,有代表意义的来问吧.



致精致简!
2007-10-21 16:52
查看资料  发短消息 网志   编辑帖子  回复  引用回复
nghr
初级用户





积分 88
发帖 34
注册 2007-10-20
状态 离线
『第 12 楼』:  



  Quote:
Originally posted by 26933062 at 2007-10-21 04:52 PM:
你是想在for语句里,通过条件判断来执行命令吧?
你这样问,谁能听的懂啊?
在for里最好不要使用标签.
灵活运用if 条件 命令 else 命令   就可以实现.
你的代码写的太乱了,换个简单点的,有代表意义的来问吧.

感谢您,已经用IF语句解决!!!

2007-10-21 18:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: