0

我得到了命令:

for /f "delims=// tokens=2,4,6" %%a in (memod.txt) do @echo %%a %%b %%c

哪个工作正常。但我需要一个不会遍历每一行文本,而是通过单个特定行的文本。

谢谢!

4

2 回答 2

1
for /f "skip=N delims=// tokens=2,4,6" %%a in (memod.txt) do @echo %%a %%b %%c & goto break
:break

skip=N选项跳过前 N 行;在处理完第 N+1 行后,goto中断下一行的处理。

于 2013-06-05T03:22:26.857 回答
1

由于您没有准确地透露要如何选择“特定行”,因此很难得出答案,但是:

"delims=//不会//像您期望的那样选择作为分隔符,而是选择/and

从另一个问题来看,您的数据行似乎包含"//"并且FOR..delims...语法将连续的分隔符视为一个,因此它可能会起作用 - 但它也会在类似this/is/not/a/target/line/at/all或的行上“起作用”neither///is///this///a///target///line

也许像这样的结构

for /f "tokens=2,4,6delims=/" %%a in (
 'type memod.txt^|findstr /r ".*//.*//.*" '
  ) do (
 echo %%a %%b %%c&goto skipfor
)
:skipfor

或者

for /f "tokens=2,4,6delims=/" %%a in (
 'type memod.txt^|findstr /r ".*//.*//.*" ^|findstr /v "///" '
  ) do (
 echo %%a %%b %%c&goto skipfor
)
:skipfor

可能适合。

于 2013-06-05T05:26:20.747 回答