为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

精慕HU 2019-07-31 18:04:50
如何使用Windows批处理文件遍历文本文件中的每一行?我想知道如何使用Windows批处理文件遍历文本文件中的每一行,并连续处理每行文本。
查看完整描述

3 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

下面的帖子有很大帮助,但没有按照我在问题中所说的那样做,我需要处理整个整行。这是我发现的工作方式。

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

带有星号(*)的标记关键字将拉出整行的所有文本。如果你没有放入星号,它只会拉动该行的第一个单词。我认为它与空间有关。

对于TechNet上的命令

我感谢所有的帖子!


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

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


查看完整回答
反对 回复 2019-07-31
?
FFIVE

TA贡献1797条经验 获得超6个赞

从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"


查看完整回答
反对 回复 2019-07-31
?
炎炎设计

TA贡献1808条经验 获得超4个赞

在批处理文件中,您必须使用%%而不是%:(类型help for

for /F "tokens=1,2,3" %%i in (myfile.txt) do call :process %%i %%j %%kgoto thenextstep:processset VAR1=%1set VAR2=%2set VAR3=%3COMMANDS TO PROCESS INFORMATIONgoto :EOF

这样做:for命令末尾的“do call:process %% i %% j %% k”将forfile命令中获取的信息从myfile.txt传递给“process”'子例程'。

在批处理程序中使用for命令时,需要对变量使用双%符号。

以下行将那些变量从for命令传递给进程'sub routine',并允许您处理此信息。

set VAR1=%1
 set VAR2=%2
 set VAR3=%3

如果需要更多示例,我会对这个确切的设置有一些非常高级的用法,我愿意分享。当然,根据需要添加您的EOL或Delims。


查看完整回答
反对 回复 2019-07-31
  • 3 回答
  • 0 关注
  • 2408 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信