Batch file 使用for/f获取特定行将生成最后一行

Batch file 使用for/f获取特定行将生成最后一行,batch-file,Batch File,下面一行是test5.html中的181行: (是的,它一开始确实有那么多空格) 使用/f的,我尝试获得该行: for/f“skip=180 delims=“%%i in(test5.html)do set”stringRaw=%%i” 但结果是。这是文件的最后一行,不是第181行。如何解决此问题?批处理可能会将所有标记解释为重定向。我喜欢批处理,但用于解析高级文本很糟糕。我相信很快就会有人提供更好的答案;)批处理从未被设计为解析文本行,因此它“糟糕”的原因就在于它。但是,问题可能在于源文件中

下面一行是test5.html中的181行:
(是的,它一开始确实有那么多空格)

使用/f的
,我尝试获得该行:
for/f“skip=180 delims=“%%i in(test5.html)do set”stringRaw=%%i”

但结果是
。这是文件的最后一行,不是第181行。如何解决此问题?

批处理可能会将所有标记解释为重定向。我喜欢批处理,但用于解析高级文本很糟糕。我相信很快就会有人提供更好的答案;)批处理从未被设计为解析文本行,因此它“糟糕”的原因就在于它。但是,问题可能在于源文件中的行尾类型。基于Windows的文件使用CRLF行结尾,如果您的文件仅使用LF,则可能会导致问题。如果将
(test5.html)
更改为
('type“test5.html“)
,会发生什么情况?如果未定义stringRaw,请将
放在
前面,设置“stringRaw=%%i”
,因为在
for/F
循环开始迭代之前变量为空(您可以通过
设置“stringRaw=”来实现)
在/F的
上方的一行中,
)…发生了这样的事情:我的代码是: