假设我有文件夹 A 和文件夹 B。文件夹 A 有文件 A1 和 A2。文件夹 B 有文件 B1 和 B2。
我想在每个文件夹中创建一个文本文件,列出该文件夹中的文件。因此,在文件夹 A 中创建 fileA.txt,列出文件名 A1 和 A2,B 也是如此
尝试了以下方法,但没有效果
for /d %%g in ("*") do (
for /r %%y in ("*.mp4") do (
echo file '%%y'
) > ./%%g/mylist.txt
)
任何帮助表示感谢
答案1
使用命令提示符可以非常简单地实现这一点:
cd "\path\to\folder-A"
dir /b *.mp4 > fileA.txt
此开关/b
将导致仅列出裸文件名。
答案2
从%Base%
文件夹开始,此批处理将迭代文件夹结构并创建mylist.txt
包含所有以单引号%ext%
括起来的类型的文件夹。file
:: Q:\Test\2018\10\27\SO_1370390.cmd
@Echo off
Set "Base=X:\start\path"
Set "ext=.mp4"
for /R "%Base%" %%A in (.) do (
( for %%B in ("%%~fA\*%ext%") do Echo file '%%~fB'
) >"%%~fA\mylist.txt"
)
答案3
for /d /r . %%a in (*) do >"%%a\myList.txt" dir /b "%%a"
对于每个目录,从当前活动目录递归地将裸命令的结果发送到dir
正在处理的目录内的指示文件。