2011-01-31 28 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

相关问题