我有很多子目录,即sub1,sub2,sub3,sub4等等。
我想在每个子目录中只保存文件名,但是使用位于主目录即DIR1的批处理文件。
我知道这段代码:DIR /B /ON *.txt > filelist.txt
。
但是这段代码将文件名保存在同一个文件夹中,即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
另外,我希望此代码不会在子目录的文件夹中执行。
答案 0 :(得分:1)
也许尝试使用tree
命令和/f
开关,以便列出文件名:
tree /f
输出如下:
答案 1 :(得分:1)
for /d /r "c:\Main Directory\DIR1" %%a in (*) do (
>"%%~fa\filelist.txt" dir /on /b /a-d "%%~fa\*"
)
对于每个文件夹(/d
),递归地在指定的根目录(/r
)下,对相应文件夹内的filelist.txt文件执行文件夹内容的dir命令。
答案 2 :(得分:0)
这旨在在每个子目录中创建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
)