我正在尝试遍历目录中的所有子目录并将其名称回显到文本文件,然后对于每个子目录中的每个文件,将文件名和扩展名回显到同一文本文件。到目前为止,我的.bat文件中包含以下内容:
@echo off
for /D %%d in (*) do (echo %%d >> test.txt
for /r %%i in (%%d) do echo %%~nxi >> test.txt)
独立
for /D %%d in (*) do (echo %%d >> test.txt
和
for /r %%i in (*) do echo %%~nxi >> test.txt)
用于输出*中的子目录或文件的名称,但是当我将它们组合起来时,我只是在文本文件中重复了很多次子目录的名称。
我在这个嵌套循环中做错了什么?如何修复它以输出我需要的内容?
所需输出的示例:
Directory1
File1.txt
File2.txt
File3.txt
Directory2
Filex.jpg
Filey.jpg
答案 0 :(得分:3)
如果你只需要一个深度,那就不要使用for /r
。那个递归。相反,这样做:
@echo off & setlocal
>test.txt (
for /d %%D in (*) do (
echo %%~D
for %%I in ("%%~D\*") do echo %%~nxI
)
)