标题: for循环嵌套中skip的参数问题
[打印本页]
作者: scriptor
时间: 2007-9-13 15:56
标题: for循环嵌套中skip的参数问题
我的意思是:
依次忽略前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=后面能不能使用变量
怎么解决?
作者: scriptor
时间: 2007-9-13 15:57
即使加了
setlocal enabledelayedexpansion
也没有用
作者: ThinKing
时间: 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
)
作者: scriptor
时间: 2007-9-13 16:21
Quote: |
Originally posted by ThinKing at 2007-9-13 16:04:
try this:
[code]
@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嵌套中用
呵呵,不过还是我错了
谢谢了
代码没有错误!
我得对照一下我的为什么错了
呵呵.....
作者: scriptor
时间: 2007-9-13 16:22
To: Thinking
给你加分吧!
呵呵....
作者: scriptor
时间: 2007-9-13 16:31
再补充下:
最好是能在for的嵌套中解决这个问题
call 和 goto 跳来跳去的
就涉及到代码段位置的安排了
作者: ThinKing
时间: 2007-9-13 19:43
换个思路也可达到目的:
@echo off
for /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
作者: scriptor
时间: 2007-9-13 20:34
Quote: |
Originally posted by ThinKing at 2007-9-13 19:43:
换个思路也可达到目的:
[code]@echo off
for /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倍
哈哈...
不过技术上来讲
这个要多一点
作者: scriptor
时间: 2007-9-13 20:35
再给你加分吧
嗯.....