请耐心等待我,我是批处理文件的菜鸟。
所以我使用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个文本文件,我只想要一个。如何让它只打印一个文本文件?
提前感谢您的帮助!
答案 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
)