|  | 
 
| scriptor 银牌会员
 
      
 
 
 积分 1187
 发帖 555
 注册 2006-12-21
 状态 离线
 | 
| 『楼 主』:
 for循环嵌套中skip的参数问题
 
使用 LLM 解释/回答一下 
 
 
我的意思是: 
依次忽略前1,2,....,6行,将文件的内容输出 
文件a.txt: 
abc 
123 
name 
haha 
ddd 
sdw 
erw 
332,l. 
a asdfe
 
我要的结果是 
skip=1时,   只输出123 
skip=2时,   只输出name 
...... 
skip=6时,   只输出erw
 
脚本如下:
 for /l %%a in (1,1,6) do (
 for /f "delims= skip=%%a" %%b in (a.txt) do (
 echo %%b
 )
 )
 
 问题是,这个脚本执行不了
 提示为:
 此时不能有%a"
 
 
我想了很久 
搜索查看了论坛的帖子 
还是无解
 
那位能解释一下 
for循环嵌套中的skip=后面能不能使用变量 
怎么解决?
 
 
 
 |  | 
|  2007-9-13 15:56 |  | 
|  | 
 
| scriptor 银牌会员
 
      
 
 
 积分 1187
 发帖 555
 注册 2006-12-21
 状态 离线
 |  | 
|  2007-9-13 15:57 |  | 
|  | 
 
| ThinKing 中级用户
 
    
 
 
 
 积分 471
 发帖 207
 注册 2007-5-3
 状态 离线
 | 
|   『第 3 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
try this: @echo off
 for /l %%a in (1,1,6) do call :skip_ %%a
 pause&exit/b
 
 :skip_
 for /f "delims= skip=%1" %%b in (a.txt) do (
 echo %%b && goto :eof
 )
 
 
 
 
 
 
 |  | 
|  2007-9-13 16:04 |  | 
|  | 
 
| scriptor 银牌会员
 
      
 
 
 积分 1187
 发帖 555
 注册 2006-12-21
 状态 离线
 | 
| 『第 4 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
Originally posted by ThinKing at 2007-9-13 16:04:try this:
 
 @echo off
 for /l %%a in (1,1,6) do call :skip_ %%a
 pause&exit/b
 
 :skip_
 for /f "delims= skip=%1" %%b in (a.txt) do (
 echo %%b && goto :eof
 ...
 
好了 
这个很好啊
 
其实我也用过这个技术 
不知道哪里错了 
所以 
我又回到原始的想法 
只在for嵌套中用 
呵呵,不过还是我错了
 
谢谢了 
代码没有错误! 
我得对照一下我的为什么错了 
呵呵..... 
 
 
 
 |  | 
|  2007-9-13 16:21 |  | 
|  | 
 
| scriptor 银牌会员
 
      
 
 
 积分 1187
 发帖 555
 注册 2006-12-21
 状态 离线
 |  | 
|  2007-9-13 16:22 |  | 
|  | 
 
| scriptor 银牌会员
 
      
 
 
 积分 1187
 发帖 555
 注册 2006-12-21
 状态 离线
 | 
| 『第 6 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
再补充下:
 最好是能在for的嵌套中解决这个问题
 call  和 goto 跳来跳去的
 就涉及到代码段位置的安排了
 
 
 
 
 |  | 
|  2007-9-13 16:31 |  | 
|  | 
 
| ThinKing 中级用户
 
    
 
 
 
 积分 471
 发帖 207
 注册 2007-5-3
 状态 离线
 | 
|  『第 7 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
换个思路也可达到目的: @echo offfor /l %%a in (1,1,6) do (
 for /f "delims=" %%b in ('more +%%a a.txt') do (
 if not defined a echo %%b&&set a=thinking
 )
 set a=
 )
 pause
 
 
 
 
 
 |  | 
|  2007-9-13 19:43 |  | 
|  | 
 
| scriptor 银牌会员
 
      
 
 
 积分 1187
 发帖 555
 注册 2006-12-21
 状态 离线
 | 
| 『第 8 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
Originally posted by ThinKing at 2007-9-13 19:43:换个思路也可达到目的:
 
 @echo offfor /l %%a in (1,1,6) do (
 for /f "delims=" %%b in ('more +%%a a.txt') do (
 if not defined a echo %%b&&set a=thin ...
 
这个也可以 
只是时间上要比你之前那个慢多了 
同样一个文件 
这个所花费的时间是之前那一个的40倍 
哈哈... 
不过技术上来讲 
这个要多一点 
 
 
 
 |  | 
|  2007-9-13 20:34 |  | 
|  | 
 
| scriptor 银牌会员
 
      
 
 
 积分 1187
 发帖 555
 注册 2006-12-21
 状态 离线
 |  | 
|  2007-9-13 20:35 |  |