0

好吧,我有那个代码:

@echo off
FOR /F "tokens=* skip=3" %%A IN (abc.txt) DO (echo.%%A)
pause

abc.txt中:

a
b
c
d
e
f
g
h
i
j
k
l
m
n
ñ
o
p
q
r
s
t
u
v
w
x
y
z

我只想读第三行,不再...

我怎样才能做到这一点?:/

4

3 回答 3

1
@echo off
set /a "skip=%~1" || exit /b

if %skip% gtr 0 (set skip=skip=%skip%) else (set skip=)
set "value="
for /f "usebackq %skip% delims=" %%A in ("abc.txt") do (
  set "value=%%A"
  goto :done
)
:done
echo value=%value%

FOR /F 不支持"skip=0",因此循环之前的 if 语句。

于 2013-09-07T13:44:41.460 回答
0

哇!我已经解决了:

@echo off
set /a count=6
if defined count for /f "skip=%count%tokens=1*delims=:" %%i in ('findstr /N "^" "abc.txt"') do if not defined value set "value=%%j"
echo %value%

输出:g

:D

于 2013-09-07T11:27:25.633 回答
0

这使用了一个名为 findrepl.bat 的帮助批处理文件 - http://www.dostips.com/forum/viewtopic.php?f=3&t=4697

type abc.txt |findrepl /o:3:3

findrepl.bat 是您工具的方便补充。
在这种用法中,它将开始行和结束行设置为相同的数字 /o:S:E

于 2013-09-07T22:21:51.050 回答