我得到了命令:
for /f "delims=// tokens=2,4,6" %%a in (memod.txt) do @echo %%a %%b %%c
哪个工作正常。但我需要一个不会遍历每一行文本,而是通过单个特定行的文本。
谢谢!
我得到了命令:
for /f "delims=// tokens=2,4,6" %%a in (memod.txt) do @echo %%a %%b %%c
哪个工作正常。但我需要一个不会遍历每一行文本,而是通过单个特定行的文本。
谢谢!
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
中断下一行的处理。
由于您没有准确地透露要如何选择“特定行”,因此很难得出答案,但是:
"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
可能适合。