使用DIR命令显示带文件的子目录...禁止没有文件的子目录

时间:2014-10-01 16:22:32

标签: windows command-line

我目前正在具有子目录的特定目录上运行命令dir /b/s *.*。我如何仅获取不显示空目录的目录列表,而只获取包含文件的目录。

2 个答案:

答案 0 :(得分:0)

假设以下结构(这将是dir / s / b的结果)

test\1
test\2
test\3
test\1\fred.txt
test\2\wilma.txt

对于包含至少一个文件的目录列表:

for /f %i in ('dir /b /s /ad') do @for /f %j in ('dir %i ^| find "File(s)"') do @if not %j==0 echo %i

结果:

test\1
test\2

对于文件列表但不包括仅作为目录的行:

for /f %i in ('dir /b /s /ad') do @for /f %j in ('dir %i ^| find "File(s)"') do @if not %j==0 dir /b /s %i

结果:

test\1\fred.txt
test\2\wilma.txt

请记住,如果这是在批处理文件中完成的,则必须将%符号加倍,例如%% i和%% j

答案 1 :(得分:0)

这将为您提供没有文件的文件夹列表:

@echo off
(for /f "delims=" %%a in ('dir /s /b /ad') do dir "%%a" /b /a-d >nul 2>&1 && echo %%a)>"folderlist.txt"