批处理文件:列出文件名和文件夹名称

批处理文件:列出文件名和文件夹名称

使用 cmd 或 .bat 脚本,有没有办法只列出文件名和文件夹名?我想运行批处理文件来生成包含此信息的文本文件。

假设我有以下文件夹:

C:\test\test.bat
C:\test\Doc1.exe
C:\test\Doc2.docx
C:\test\subdir1\Doc3.pdf
C:\test\subdir2\Doc4.txt

我很想得到这样的输出:

Doc1.exe
Doc2.docx
test.bat
subdir1
subdir2

迄今为止,这个答案是我能得到的最接近的结果。输出为:

Doc1     exe
DOC3~1   DOC
subdir1
subdir2
test     bat

我已经尝试过目录:

dir /b /a-d >filelist.txt

但它没有得到我想要的。(即,它只列出文件名但没有列出文件夹名)。

谢谢你!

答案1

回答
从您的代码中排除它/a-d,它应该正是您想要它做的事情。

此外,为了获得您指定的精确输出格式,请根据项目是否为文件夹对返回进行排序。

解释

https://ss64.com/nt/dir.html

/a是指定一个属性
d来指定查找目录,并且是-否定的,所以d
意味着/a:-d:其中属性不是目录并且该参数是从列表中删除目录。

简单dir /b将返回所有文件夹和文件。

该参数/o可让您组织返回。/o:g将在列表中首先列出文件夹,并/o:-g最后列出它们。

最后,如果你跑步,dir /b /o:-g > filelist.txt你的回报将是

Doc1.exe
Doc2.docx
test.bat
subdir1
subdir2

相关内容