Batch file 使用批处理文件的每个子目录中的文件名列表

Batch file 使用批处理文件的每个子目录中的文件名列表,batch-file,cmd,subdirectory,Batch File,Cmd,Subdirectory,我有很多子目录,比如sub1、sub2、sub3、sub4等等 我只想在每个子目录中保存文件名,但要使用主目录ie DIR1中的批处理文件 我知道这个代码:DIR/B/ON*.txt>filelist.txt 但这段代码将文件名保存在同一个文件夹ie sub1中,我希望DIR1文件夹批处理文件执行的程序只能在每个子目录中保存文件名 例如: +Main Directory(DIR1 folder) execute.bat ++Sub1 folder: mu1111.txt ++sub2

我有很多子目录,比如sub1、sub2、sub3、sub4等等

我只想在每个子目录中保存文件名,但要使用主目录ie DIR1中的批处理文件

我知道这个代码:
DIR/B/ON*.txt>filelist.txt

但这段代码将文件名保存在同一个文件夹ie sub1中,我希望DIR1文件夹批处理文件执行的程序只能在每个子目录中保存文件名

例如:

+Main Directory(DIR1 folder)

execute.bat

++Sub1 folder:

mu1111.txt 

++sub2 folder:

mu2222.txt

++sub3 folder:

mu3333.txt
当我运行execute.bat时,输出将如下所示:

+Main Directory(DIR1 folder)

execute.bat

++Sub1 folder:

mu1111.txt 

filelist.txt

++sub2 folder:

mu2222.txt

filelist.txt

++sub3 folder:

mu3333.txt

filelist.txt

另外,我希望此代码不会在子目录的文件夹中执行。

可以尝试使用带有
/f
开关的
命令,以便也列出文件名:

tree /f
输出如下所示:

+Main Directory(DIR1 folder)

execute.bat

++Sub1 folder:

mu1111.txt 

filelist.txt

++sub2 folder:

mu2222.txt

filelist.txt

++sub3 folder:

mu3333.txt

filelist.txt

这是为了在每个子目录中创建
filelist.txt

@echo off
cd /d "c:\Main Directory\DIR1"
   for /d %%a in (*) do (
       DIR /B /ON /A-D "%%a\*.txt" > filelist.txt.
       move filelist.txt "%%a" >nul
   )

对于每个文件夹(
/d
),在指定的根目录(
/r
)下递归执行文件夹内容到相应文件夹内filelist.txt文件的dir命令

每个文件名的前缀mu在生成后会在filelist.txt中删除;当filelist.txt打开时,它应该是这样的:每个文件名的1111.txtPrefix mu在生成后在filelist.txt中被删除;当filelist.txt打开时,它应该是这样的:1111.txt而不是mu1111.txt