如何编写批处理脚本以检查文件夹内的多个文件夹和文件夹并将 csv 文件设置为变量?

How to Write a batch script for checking mulitple folders and folder inside a folder and set the csv files to variables?

我必须编写一个批处理脚本以进入多个文件夹和一个文件夹中的文件夹,并在其中设置 CSV 文件并将其设置为一个变量。

我的文件夹结构是

c:\data\client1\data1.csv
c:\data\client1\data2.csv
c:\data\client1\config\env.csv

c:\data\client2\data1.csv
c:\data\client2\data2.csv
c:\data\client2\config\env.csv

像这样我有很多客户端文件夹,里面有配置文件夹和一些 CSV 数据

现在我必须使用一些循环进入 "c:\data\" 并检查 client1 文件夹,然后在里面我需要使用 for 循环设置 var = data1.csv 和 var = data2.csv我需要进入配置文件夹并设置 envs= env.csv (即文件名或文件路径)

我已经尝试了一个代码,但我没有获得关于如何在内部搜索和循环的正确登录信息。

@ECHO OFF & setlocal EnableDelayedExpansion
CD "C:\data"
For /R %%A in (*.csv) DO (
  Set "file[!#!]=%%A"
  Set /A #+=1
  )
For /L %%B in (0,1,!#!) do Echo(!file[%%B]!

我按照解决方案修改了代码。但是现在我无法在 client1 文件夹中设置 data1.csv。谁能解释这段代码? 谁能帮我解决编码部分的逻辑问题?

输出为:

c:\data\client1\data2.csv
c:\data\client1\config\env.csv
c:\data\client2\data1.csv
c:\data\client2\data2.csv
c:\data\client2\config\env.csv

您可以执行以下操作将它们分配给索引变量。 即使是中等大小的文件集,单个变量也会超过行容量,从而丢失分配给它的信息。

@ECHO OFF & setlocal EnableDelayedExpansion
CD "C:\data\client"
For /R %%A in (*.csv) DO (
    Set "file[!#!]=%%A"
    Set /A #+=1
)
For /L %%B in (0,1,!#!) do Echo(!file[%%B]!