Batch file 如何在windows批处理中拆分分隔文本?
我有一个带有外部配置文件的批处理文件。假设我需要删除配置文件中指定为一行分隔列表的文件。这些文件可能如下所示:Batch file 如何在windows批处理中拆分分隔文本?,batch-file,for-loop,dos,text-processing,Batch File,For Loop,Dos,Text Processing,我有一个带有外部配置文件的批处理文件。假设我需要删除配置文件中指定为一行分隔列表的文件。这些文件可能如下所示: [config.cfg] *.pdb;*.config [batch.bat] ... for /f "tokens=* delims=;" %%b in (%DATA_10%) do ( CALL DEL "%%b%" ) ... 批处理代码应该遍历文件列表并删除它们 如果我将另一个外部文件分配给%DATA_10%变量,该变量包含每行要删除一个的文件列表,那么它就可以正常工作。然
[config.cfg]
*.pdb;*.config
[batch.bat]
...
for /f "tokens=* delims=;" %%b in (%DATA_10%) do (
CALL DEL "%%b%"
)
...
批处理代码应该遍历文件列表并删除它们
如果我将另一个外部文件分配给%DATA_10%变量,该变量包含每行要删除一个的文件列表,那么它就可以正常工作。然而,我需要的是从config.cfg中提取文件,正如您在一行中看到的那样,否则我的批处理中需要太多的配置文件
有什么解决方案吗?如果config.cfg只包含一行数据,您可以使用
set /p DATA_10= < config.cfg
但您应该确保不要使用*或?,因为它们在普通for循环中被解释为通配符如果config.cfg仅包含一行数据,您可以使用
set /p DATA_10= < config.cfg
但是您应该确保不要使用*或?,因为它们在normal for循环中被解释为通配符Brilliant,使用normal for循环而不指定分隔符确实有效。我现在也不需要使用通配符,因为删除也可以在文件夹上工作。感谢您显示了正确的方向..太棒了,使用普通for循环而不指定分隔符真的很有效。我现在也不需要使用通配符,因为删除也可以在文件夹上工作。谢谢你指明了正确的方向。。