2016-03-09 45 views
0

我需要創建一個BAT文件來處理文件列表(包括它們的完整路徑)。比方說,我有以下內容Filelist.txt中一個名爲的文本文件:BAT文件處理文件列表

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

一個for環路與/f選項可以用來讀取和處理由行的文本文件一行。

delims=是處理可能在路徑中的任何空間,並且所述第一""是因爲start考慮第一組引號發現爲窗口的標題。

for /f "delims=" %%A in (filelist.txt) do start "" process.exe "%%A" <parameters> "%%A" 
+0

謝謝,這一定是它。 – mindphaser

0

for可以讀取和解析(在有限的程度上)文件的內容。

查看其幫助(for /?)瞭解詳情。

但是,未來是PowerShell的地方這種事情要容易得多:

gc filelistfile.txt | % { command.exe $_ }