如何使用Windows批处理文件循环遍历文本文件中的每一行?

26 浏览
0 Comments

如何使用Windows批处理文件循环遍历文本文件中的每一行?

我想知道如何使用Windows批处理文件循环遍历文本文件中的每一行,并按顺序处理每一行的文本。

admin 更改状态以发布 2023年5月23日
0
0 Comments

下面是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"

0
0 Comments

我需要将整行作为一个整体进行处理,以下是我发现有效的方法。

for /F "tokens=*" %%A in (myfile.txt) do [process] %%A

使用星号(*)的tokens关键字将会提取整行的所有文本。如果您不加入星号,它只会提取该行的第一个单词。我猜测这与空格有关。

在TechNet的命令


如果您的文件路径中有空格,您需要使用usebackq。例如:

for /F "usebackq tokens=*" %%A in ("my file.txt") do [process] %%A

0