标题: [文本处理] 批处理for命令skip不支持变量表示吗? [打印本页]
作者: wjrawlinson 时间: 2015-10-17 17:53 标题: 批处理for命令skip不支持变量表示吗?
for /f "skip=n" 如果n是变量,应该如何表示?
例如:
for /l %%i in (1,1,255) do (
for /f "skip=%%i" %%x in(abc.txy) do (
.....
.....
)
)
如果我使用了变量延迟也不行
for /l %%i in (1,1,255) do (
set y=%%i
for /f "skip=!y!" %%x in(abc.txy) do (
.....
.....
)
)
作者: CrLf 时间: 2015-10-17 18:53
for 和 if 比较特殊,他们的关键参数是不参与延迟扩展的(就是不能设为以 %%a 或 !var! 的形式动态解释的变量),所以 skip=%%i,并不会解析成 skip=n,但可以用 skip=%var%
作者: bailong360 时间: 2015-10-18 22:39
补充一下,还可以call出去然后用skip=%~1
作者: wjrawlinson 时间: 2015-10-19 07:54
回复 3# CrLf
你好,我用了skip=%var%,例如skip=%i%,还是识别不了,是我写法有问题吗?
作者: wjrawlinson 时间: 2015-10-19 07:55
回复 4# bailong360
你好,你能说的再明白一点吗,感谢
作者: pcl_test 时间: 2015-10-20 22:20
回复 6# wjrawlinson - @echo off
- (for /l %%a in (1 1 6) do echo;%%a)>"%tmp%\$"
- set n=2
- for /f "skip=%n%" %%i in ('type "%tmp%\$"') do echo;%%i
- echo;
- setlocal enabledelayedexpansion
- for %%a in (3 4) do call :0 %%a
- pause&exit
- :0
- for /f "skip=%1" %%i in ('type "%tmp%\$"') do echo;%%i
- echo;
- goto :eof
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |