Batch file 如何从逗号分隔的.txt文件中提取特定数据,并将其应用于要在命令行开关中使用的变量

Batch file 如何从逗号分隔的.txt文件中提取特定数据,并将其应用于要在命令行开关中使用的变量,batch-file,cmd,Batch File,Cmd,我有数百个具有相同文件结构的子文件夹。每个文件夹中的一个文件是包含逗号分隔信息的metadata.txt文件。我需要拉取第8个值并将其指定给变量%x,然后在后续命令中将该变量用作开关 metadata.txt文件如下所示: 91,Chocolate,10,Large,Easy Bake Oven,350,0,39.9475,Cake,1.0.0.1,C:\CakeRecords,2044449,2(10-50),1, 步骤1:为变量x(%x)分配数据中的第8个值。在这种情况下是39.9475

我有数百个具有相同文件结构的子文件夹。每个文件夹中的一个文件是包含逗号分隔信息的metadata.txt文件。我需要拉取第8个值并将其指定给变量%x,然后在后续命令中将该变量用作开关

metadata.txt文件如下所示:

91,Chocolate,10,Large,Easy Bake Oven,350,0,39.9475,Cake,1.0.0.1,C:\CakeRecords,2044449,2(10-50),1,
步骤1:为变量x(%x)分配数据中的第8个值。在这种情况下是39.9475

步骤2:使用变量作为开关运行EasyBake命令 示例:
EasyBake.exe 39.9475

我将在根文件夹中运行此命令一次,并让它遍历每个子文件夹以在每个子文件夹中运行该命令。我已经运行了一个命令,在每个子文件夹中创建了一个新文件夹“NewRecipe”,因此我对如何在文件夹之间跳转以运行脚本有了一个不错的想法,但如果您有任何建议,我也会非常感激

FOR /d %A IN ("N:\old recipes\*") DO mkdir "%A\NewRecipe"
@ECHO关闭
SETLOCAL
设置“sourcedir=U:\sourcedir”
设置“filename1=%sourcedir%\metadata.txt”
对于/f“delims=”%%a IN(
'dir/b/s/a-d“%filename1%”
)做(
对于/f“usebackqtokens=8delims=,”%%t IN(“%%a”)DO(
依你的选择
ECHO PUSHD“%%~dpa”
ECHO MD新配方
ECHO easybake.exe%%t
回声波普
回音================
)
)
后藤:EOF
只显示所需的说明


找到每个目标文件,获取适当的字段以
%%t
,然后使用
%%a

中的适当元素在(“%N:\old recipes\*”)中为/D%a执行/F“usebackq tokens=8 delims=,“%X in”(“%a\metadata.txt”)中echo%X是否提取所有
metadata.txt
文件的第八个值…您的结构没有意义,为什么要在旧配方中的每个顶级目录中创建一个名为newrecipes的目录?我最不想在一本关于老食谱的书的一章中寻找新食谱的地方!此外,您还提供了一个在命令提示符下运行的命令,对于解决方案,您需要什么,因为如果您需要一个批处理文件,那么至少有三个标记是没有理由的。