Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 如何在windows批处理中拆分分隔文本?_Batch File_For Loop_Dos_Text Processing - Fatal编程技术网

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循环而不指定分隔符真的很有效。我现在也不需要使用通配符,因为删除也可以在文件夹上工作。谢谢你指明了正确的方向。。