如何使用Windows批处理文件循环遍历文本文件中的每一行?
如何使用Windows批处理文件循环遍历文本文件中的每一行?
我想知道如何使用Windows批处理文件循环遍历文本文件中的每一行,并按顺序处理每一行的文本。
admin 更改状态以发布 2023年5月23日
下面是Windows命令行的参考资料:
要解析一个文件,忽略注释行,请输入以下命令:
for /F "eol=; tokens=2,3* delims=," %i in (myfile.txt) do @echo %i %j %k
此命令会解析Myfile.txt中的每一行,忽略以分号开头的行,并将每行的第二个和第三个标记传递给FOR语句的主体(标记由逗号或空格分隔)。FOR语句的主体通过%i获取第二个标记,通过%j获取第三个标记,通过%k获取所有剩余的标记。
如果你提供的文件名包含空格,请在文本周围使用引号(例如,"文件名")。要使用引号,请使用usebackq。否则,引号将被解释为定义要解析的文本字符串。
顺便说一句,在大多数Windows系统上,你可以在以下位置找到命令行帮助文件:
"C:\WINDOWS\Help\ntcmds.chm"
我需要将整行作为一个整体进行处理,以下是我发现有效的方法。
for /F "tokens=*" %%A in (myfile.txt) do [process] %%A
使用星号(*)的tokens关键字将会提取整行的所有文本。如果您不加入星号,它只会提取该行的第一个单词。我猜测这与空格有关。
如果您的文件路径中有空格,您需要使用usebackq
。例如:
for /F "usebackq tokens=*" %%A in ("my file.txt") do [process] %%A