我目前正在具有子目录的特定目录上运行命令dir /b/s *.*
。我如何仅获取不显示空目录的目录列表,而只获取包含文件的目录。
答案 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"