Batch file 如何忽略FOR循环中文本文件处理行中特定单词后的所有行?

Batch file 如何忽略FOR循环中文本文件处理行中特定单词后的所有行?,batch-file,lines,Batch File,Lines,我的问题是使用skip=3解决的是关于列的问题,而不是关于行的问题。这忽略了前三行。那么,在下面的示例中,忽略第一个end单词后面的所有行怎么样 1121.19, 1638.66, 16.6098, -4.7339, -4.7339, 2.5, hash:0, -1, -1, -1, -1, 1888, 0, 0 971.597, 1815.17, 21.085, 1.39876E-006, 8, 4, hash:0, -1, -1, -1, -1, 1905, 0, 0 971.597, 18

我的问题是使用
skip=3
解决的是关于列的问题,而不是关于行的问题。这忽略了前三行。那么,在下面的示例中,忽略第一个
end
单词后面的所有行怎么样

1121.19, 1638.66, 16.6098, -4.7339, -4.7339, 2.5, hash:0, -1, -1, -1, -1, 1888, 0, 0
971.597, 1815.17, 21.085, 1.39876E-006, 8, 4, hash:0, -1, -1, -1, -1, 1905, 0, 0
971.597, 1825.45, 21.085, 1.39876E-006, 8, 4, hash:0, -1, -1, -1, -1, 1905, 0, 0
end
tcyc
end
mlop
end
lodm
end
slow
end
blok
end
因此,我想忽略所有不是我的基本格式的行,即:

971.597, 1825.45, 21.085, 1.39876E-006, 8, 4, hash:0, -1, -1, -1, -1, 1905, 0, 0
需要哪个代码来忽略从第一个
结束
字到文件结尾的所有行,该文件将忽略示例输入中的以下行:

end
tcyc
end
mlop
end
lodm
end
slow
end
blok
end
以下是我目前掌握的代码:

if exist 12.txt del 12.txt
FOR /F "skip=3 tokens=1-8* delims=," %%A IN (C:\Users\Sherlock\Documents\3DReaperDX\Frames\1.txt) do >>12.txt echo model:%%H tx:%%A ty:%%C tz:%%B rx:%%D ry:%%F rz:%%E

此第一批文件检查echo行中使用的所有循环变量是否具有非空字符串,这将导致忽略除前3行之外的所有行

@echo off
setlocal EnableExtensions
set "OutputFile=12.txt"
del "%OutputFile%" 2>nul
for /F "usebackq tokens=1-8* delims=," %%A in ("C:\Users\Sherlock\Documents\3DReaperDX\Frames\1.txt") do (
    if "%%A" NEQ "" (
        if "%%B" NEQ "" (
            if "%%C" NEQ "" (
                if "%%D" NEQ "" (
                    if "%%E" NEQ "" (
                        if "%%F" NEQ "" (
                            if "%%H" NEQ "" (
                                >>"%OutputFile%" echo model:%%H tx:%%A ty:%%C tz:%%B rx:%%D ry:%%F rz:%%E
                            )
                        )
                    )
                )
            )
        )
    )
)
endlocal
第二个批处理文件处理从包含字符串
end
不区分大小写的行到第一行

@echo off
setlocal EnableExtensions
set "OutputFile=12.txt"
del "%OutputFile%" 2>nul
for /F "usebackq tokens=1-8* delims=," %%A in ("C:\Users\Sherlock\Documents\3DReaperDX\Frames\1.txt") do (
    if /I "%%A" EQU "end" goto ContinueAfterLoop
    >>"%OutputFile%" echo model:%%H tx:%%A ty:%%C tz:%%B rx:%%D ry:%%F rz:%%E
)
:ContinueAfterLoop
endlocal

顺便说一下:
%USERPROFILE%
C:\Users\Sherlock
相同,如果用户帐户名是
Sherlock
,此第一批文件检查echo行中使用的所有循环变量是否都有非空字符串,这将导致忽略除前3行之外的所有行

@echo off
setlocal EnableExtensions
set "OutputFile=12.txt"
del "%OutputFile%" 2>nul
for /F "usebackq tokens=1-8* delims=," %%A in ("C:\Users\Sherlock\Documents\3DReaperDX\Frames\1.txt") do (
    if "%%A" NEQ "" (
        if "%%B" NEQ "" (
            if "%%C" NEQ "" (
                if "%%D" NEQ "" (
                    if "%%E" NEQ "" (
                        if "%%F" NEQ "" (
                            if "%%H" NEQ "" (
                                >>"%OutputFile%" echo model:%%H tx:%%A ty:%%C tz:%%B rx:%%D ry:%%F rz:%%E
                            )
                        )
                    )
                )
            )
        )
    )
)
endlocal
第二个批处理文件处理从包含字符串
end
不区分大小写的行到第一行

@echo off
setlocal EnableExtensions
set "OutputFile=12.txt"
del "%OutputFile%" 2>nul
for /F "usebackq tokens=1-8* delims=," %%A in ("C:\Users\Sherlock\Documents\3DReaperDX\Frames\1.txt") do (
    if /I "%%A" EQU "end" goto ContinueAfterLoop
    >>"%OutputFile%" echo model:%%H tx:%%A ty:%%C tz:%%B rx:%%D ry:%%F rz:%%E
)
:ContinueAfterLoop
endlocal
顺便说一下:
%USERPROFILE%
C:\Users\Sherlock
相同,如果用户帐户名是
Sherlock