![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 10:48 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]不明白另一个例子可以不用变量延迟 |
| 可打印版本 543 / 2 |
| 第1楼 skywalker | 发表于 2009-02-24 16:44 |
| 初级用户 发帖 26 积分 75 | |
|
[求助]不明白另一个例子可以不用变量延迟 “tireless”回的一个贴,是回答如何读取文本文件开头的若干行的。有两种方法:
方法一:跳过或忽略空行 @echo off & setlocal EnableDelayedExpansion for /f "delims=" %%a in (a.txt) do ( echo.%%a set /a n+=1 & if !n!==3 goto out ) :out pause 方法二:处理包含空行 @echo off for /f "tokens=1,* delims=:" %%a in ('findstr /n .* a.txt') do ( echo.%%b if %%a==3 goto out ) :out pause —————————————————————— 有一点不明白,为什么方法一启用了变量延迟,而方法二可以不用变量延迟? 如果方法一不启用变量延迟,则会将a.txt的全部内容打印出来。不启用变量延迟,方法一又应该怎么样写? |
|
| 第2楼 moniuming | 发表于 2009-02-24 18:15 |
| 银牌会员 发帖 574 积分 1,335 来自 广西 | |
|
1.
为什么方法一启用了变量延迟 set /? 2. 为什么方法二可以不用变量延迟? 请运行findstr /n .* a.txt 3. 不启用变量延迟,方法一又应该怎么样写? |
|
| 第3楼 skywalker | 发表于 2009-02-26 09:13 |
| 初级用户 发帖 26 积分 75 | |
|
感谢moniuming的回答.
我知道set 及findstr的用法,也看了相关的变量延迟的内容,明白了大多. 但这里是不明白为什么一个要用,另一个不要用. 能否详细解说一下? |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |