【发布时间】:2012-03-18 11:03:30
【问题描述】:
我想使用批处理脚本来循环浏览文件夹和子文件夹,并在单个字符串中返回包含 xml 文件的所有文件夹。 (我需要能够将其作为参数发送)
我的文件夹结构比较简单,我有一个“父”文件夹,包含子文件夹,每个文件夹都包含 xml 文件。所以文件夹结构如下:
MasterFolder1 > Subfolder1 > file1.xml - file2.xml ... 更多文件
子文件夹 2 > file1.xml - file2.xml ... 更多文件
... 更多子文件夹
MasterFolder2 > Subfolder1 > file1.xml - file2.xml ... 更多文件
子文件夹 2 > file1.xml - file2.xml ... 更多文件
... 更多子文件夹
等等
我已经能够构建的是将遍历所有文件夹的批处理数据,并且只关心带有 xml 文件的那些。它看起来如下:
@echo off & setLocal enableDELAYedexpansion
set catdir=%CD%\catalog\%
cd %catdir%
FOR /f %%G in ('dir /ad/s/b') DO (
if exist %%G\*.xml (
for /f "tokens=1-6 delims=\/" %%i in ("%%G") do (
set model=%%m REM 'model' is the master folder name
set locale=%%n REM 'locale' is the sub folder name
echo %%m - %%n
)
)
)
pause
这给了我这样的输出
模型 1 - DE
型号1 - FR
模型1 - ES
模型 2 - DE
Model2 - FI
模型 2 - 丹麦
等等
现在,我想得到的是这样的:
型号 1 - DE;FR;ES
模型 2 - DE;FI;DK
等等,所以我可以将我的主文件夹作为单个变量发送,并将主文件夹的所有子文件夹作为分组变量发送给应用程序。
希望我在这里有点清楚,我是批处理文件的绝对初学者。
【问题讨论】:
标签: batch-file