批处理文件,用于打印特定子文件夹中的目录文件夹和文件列表

时间:2015-03-11 16:30:39

标签: batch-file directory subdirectory

请耐心等待我,我是批处理文件的菜鸟。

所以我使用D:\ RDSUsers作为我的主目录。这里有大约150个文件夹(每个都有一个用户名,例如我的是k.suria),我想查看每个用户文件夹并选择他们的桌面文件夹中的“支持系统”文件夹。听起来有点棘手。

例如我的用户文件夹位于D:\ RDSUsers \ k.suria中,我希望得到D:\ RDSUsers \ k.suria \ Desktop \ System Support文件夹中的内容

换句话说,我想列出D:\ RDSUsers(其中150个)中的文件夹名称,并列出每个Desktop文件夹中“System Support”文件夹中的所有文件,但我希望它在一个文本文件。

我是否混淆了任何人?

到目前为止,我有这个:

for / d %% x in(D:\ RDSUsers \ *)do dir %% x \ desktop \“Support Systems”> %% x.txt

这将为D:\ RDSUsers中的每个文件夹打印150个文本文件,并列出“Support Systems”文件夹中的所有内容。问题是我不想要150个文本文件,我只想要一个。如何让它只打印一个文本文件?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

你这么近。只需更改结尾,这样您就不会每次都创建一个新文件名,并添加第二个>,以便将输出附加到现有文件中:

for /d %%x in (D:\RDSUsers\*) Do dir %%x\desktop\"Support Systems" >> OneBigFile.txt

编辑:好的,要获取用户/文件夹名称后跟一行文件列表,这应该可以解决问题:

setlocal enabledelayedexpansion
for /d %%x in (D:\RDSUsers\*) do (
    set line=%%~nx
    for %%y in (%%x\desktop\"Support Systems"\*) do set line=!line! %%~nxy  
    echo !line! >> output.txt
)