2011-01-31 59 views
2

我有一個帶外部配置文件的批處理文件。假設我需要刪除配置文件中指定的文件,作爲定界列表。這些文件看起來是這樣的:如何在Windows批量中分隔分隔文本?

[config.cfg] 
*.pdb;*.config 

[batch.bat] 
... 
for /f "tokens=* delims=;" %%b in (%DATA_10%) do (
CALL DEL "%%b%" 
) 
... 

批處理代碼應通過的文件列表進行迭代,並刪除它們。

如果我有另一個外部文件分配給%DATA_10%變量,其中包含每行刪除一個文件的列表,那麼它的工作原理是完美的。然而,我需要的是從上面看到的config.cfg中提取的文件(全部在一行上),否則我的批處理中將需要太多的配置文件。

解決方案的任何想法?

回答

0

如果只的config.cfg包含您的數據行,則可以使用

set /p DATA_10= < config.cfg 

但是你FOR/F循環每行只有一次擴展,因此它不能以這種方式工作。 你可以將其更改爲

FOR %%a in (%DATA_10%) do (call del "%%b") 

但是,你應該確保不使用*或?,因爲它們被解釋爲環

+0

輝煌,它使用常規真的曾在一個「正常」的通配符for-loop沒有指定分隔符。現在我不需要使用通配符,因爲刪除也可以在文件夾上使用。感謝您展示正確的方向.. – David 2011-01-31 14:12:18

相關問題