中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-02 14:33
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 怎样在文件中提取某一行命令 查看 2,181 回复 19
16 发表于 2006-11-17 22:49 ·  IANA 局域网IP(Private-Use)
中级用户
★★
蝴蝶之吻
积分 430
发帖 177
注册 2006-09-20 12:00
19年会员
UID 63170
来自 广东深圳
状态 离线
又出现问题!
如下:

…………
for /f "tokens=1* delims=:" %%i in ('findstr /n . OptionFile.txt') do if %%i equ 3 "%%j"
call :ReCookis
…………

执行完FOR,就不能返回CALL命令来,而是直接退出BAT。。。
怎么回事。。。???!!!
17 发表于 2006-11-17 22:59 ·  中国 江苏 苏州 联通
银牌会员
★★★
积分 1,181
发帖 533
注册 2006-08-14 12:54
19年会员
UID 60484
状态 离线
可以给出完整的代码看看么?
问题可能出在 CALL 的那块代码上。
18 发表于 2006-11-17 23:17 ·  中国 北京 东城区 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
19年会员
UID 63324
性别 男
状态 离线


...
...
call :ReCookis
...
goto :eof


:ReCookis
代码....
REM  ==============如果你ReCookis标签代码段结束的时候无 goto :eof,则不会返回到Call的调用者处。
goto :eof

:A
....
goto :eof

:B
...
goto :eof



如果下面for中命令的执行段: For ... (..) do (这里面代码如果不被括号括起来,也将不被For视为在For中执行的多条代码,它将只执行同一行中代码)

for /f "tokens=1* delims=:" %%i in ('findstr /n . OptionFile.txt') do if %%i equ 3 "%%j"


[ Last edited by redtek on 2006-11-17 at 11:21 PM ]
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
19 发表于 2006-11-17 23:17 ·  IANA 局域网IP(Private-Use)
中级用户
★★
蝴蝶之吻
积分 430
发帖 177
注册 2006-09-20 12:00
19年会员
UID 63170
来自 广东深圳
状态 离线
我是执行了FOR以后(FOR里边的第三行是一条命令呀《打开一个文件执行,结束》),才执行CALL的
有好多文件,

DATE里边还有好多文件

[ Last edited by zouzhxi on 2006-11-17 at 11:21 PM ]
20 发表于 2006-11-23 03:49
中级用户
★★
DOS之日
积分 337
发帖 161
注册 2006-11-04 05:27
19年会员
UID 69523
性别 男
状态 离线
关注一下
for /f %%h in (`echo hxuan`) do for /f %%x in (`echo hxuan`) do if %%h==%%x nul
论坛跳转: