Batch file 使用批处理文件的每个子目录中的文件名列表
我有很多子目录,比如sub1、sub2、sub3、sub4等等 我只想在每个子目录中保存文件名,但要使用主目录ie DIR1中的批处理文件 我知道这个代码: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
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