与FOR(循环)相反

时间:2013-06-05 02:51:11

标签: file for-loop batch-file cmd

我得到了命令:

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

应该做哪些工作。 但是我需要一个不会通过每一行文本,而是通过一个特定的行。

谢谢!

2 个答案:

答案 0 :(得分: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打破了下一行的处理。

答案 1 :(得分:1)

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

"delims=//并未选择//作为您所期望的分隔符,而是选择/

从另一个问题来看,您的数据行似乎包含"//",并且FOR..delims...语法将连续分隔符视为一个,因此它可能会起作用 - 但它也可以在一行上“工作”例如this/is/not/a/target/line/at/allneither///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

可能适合。