我需要创建一个BAT文件来处理文件列表(包括它们的完整路径)。我们假设我有一个名为filelist.txt的文本文件,其中包含以下内容:
C:\Temp\a.mp4
C:\Temp\b.mp4
D:\z.mp4
E:\Backup\s.mp4
使用BAT文件,如何读取filelist.txt,然后调用外部程序逐个处理?
process.exe "C:\Temp\a.mp4" <parameters> "C:\Temp\a.m4a"
process.exe "C:\Temp\b.mp4" <parameters> "C:\Temp\b.m4a"
process.exe "D:\z.mp4" <parameters> "D:\z.m4a"
process.exe "E:\Backup\s.mp4" <parameters> "E:\Backup\s.m4a"
每个文件的参数都相同。对于第二部分,我猜应该有一个FOR命令来删除冗余。有什么想法吗?
答案 0 :(得分:0)
for
可以读取和解析(在有限程度上)文件的内容。
有关详细信息,请参阅其帮助(for /?
)。
但是,未来是PowerShell,这种事情要容易得多:
gc filelistfile.txt | % { command.exe $_ }
答案 1 :(得分:0)
带有for
选项的/f
循环可用于逐行读取和处理文本文件。
delims=
用于处理路径中可能存在的任何空格,第一个""
是因为start
认为它找到的第一组引号是窗口标题。
for /f "delims=" %%A in (filelist.txt) do start "" process.exe "%%A" <parameters> "%%A"