在批处理文件中逐行读取txt

Lam*_*pis 15 for-loop batch-file

这是我的问题.我有一个包含100个不同视频名称的txt文件(示例):

abc.mpg
def.mpg
ghi.mpg
xyz.mpg
Run Code Online (Sandbox Code Playgroud)

我想使用一些命令逐个处理这些视频,并将结果放入一个具有相同名称的文件夹中(不带扩展名):

command1 abc.mpg
command2 abc.mpg
move results .\abc
Run Code Online (Sandbox Code Playgroud)

我的问题是如何在批处理文件中使用for循环执行上述迭代.

Ste*_*eve 22

该命令是FOR with/F参数

FOR /F %i in (yourFile.txt) DO yourcommand %i
Run Code Online (Sandbox Code Playgroud)

这将从文本文件中一次读取一行并将值插入%i参数然后调用DO关键字后指定的命令(该命令可能是另一个需要复制或移动操作的批处理)

  • 如果列表中的文件名可能包含空格,请在`/ F`之后添加`'delims ="`(或``tokens =*"`):`FOR/F"delims ="%i IN ...`. (9认同)
  • 请注意,如果在`yourFile.txt`周围加上双引号,`FOR`将遍历该文本而不是读取文件.cmd太混乱了.[ss64 FOR /F](http://ss64.com/nt/for_f.html)上的文档详细介绍了这一切. (3认同)