此问题在此处已有答案:
Batch files: How to read a file?(7个答案)
昨天关门了。
我是这样试的:
for /F %%i in (%textfile%) do (
echo %%i )
或者这个:
for /F "tokens=* delims=" %%i in (%textfile%) do (
echo %%i )
或任何其他组合,带或不带标记或分隔符。
所有这些组合只是回显每一行,但无论出于何种原因,排除了以分号开头的行。使用分号作为delim击败了purpous,因为我无法识别哪些行曾经以分号开头,哪些没有。
是否有任何方法可以正确阅读带有分号的行,或者在从分隔符中删除分号行后识别它们?
1条答案
按热度按时间nzk0hqpo1#
将默认的“End Of Line”字符
;
替换为其他字符:(in批处理写入
%%i
,而不是%i
)^A
只是ASCII/ANSI代码1的内容。您可以通过按下修改器键alt
并在 * 数字键盘 *0001
上键入来获得它。这是一个很少出现在文本文件中的字符。但是你可以自由选择一个不同的字符。
重新编辑:正如 Compo 在评论中指出的那样,实际上对于解决方案来说,不需要EOL字符。所以没有字符会被阻止:
正如 jeb 正确提到的那样,这里不能使用强制性的引号。因此特殊的解释字符
=
和``(空格)必须由^
转义。在 Compo 的解决方案中,字段
delims
也被设置为'empty',因此在这种情况下不需要tokens
选项。