【发布时间】:2020-02-18 17:02:40
【问题描述】:
我想查找特定路径 (C:\main_folder) 下没有文件的所有文件夹。
我找到了一种使用 cmd 的方法:
@echo off
setlocal
set "folder=C:\main_folder"
for /r "%folder%" /d %%F in (.) do dir /b "%%F" | findstr "^" >nul || (echo %%~fF) > "C:\empty_folders_list.txt"
但如果我有C:\main_folder\folder_1 包含folder_2 并且没有文件并且C:\main_folder\folder_1\folder_2 没有文件,则该代码仅给出C:\main_folder\folder_1\folder_2,而我也想拥有
C:\main_folder\folder_1 在里面。
它不应该只查看没有文件的文件夹,因为我可以拥有
C:\main_folder\folder_3 包含 folder_4 并且没有文件,但如果
C:\main_folder\folder_3\folder_4 包含文件,folder_3 和 folder_4 不应列出。
得到列表后我想删除它们(列表仅用于检查/保存它们)。
我该怎么写? 谢谢!
【问题讨论】:
-
你应该试试
dir /b /s /a-d "%%F",看看效果如何。 -
谢谢。试过这个@echo off setlocal set "folder=C:\main_folder" for /r "%folder%" /d %%F in (.) do dir /b /s /a-d "%%F" | findstr "^" >nul || (echo %%~fF) > "C:\empty_folders_list.txt" 但它只写 C:\main_folder\folder_1\folder_2...
标签: cmd directory subdirectory