我希望创建一个 Windows 批处理文件,列出用户指定的根目录下所有空子目录。
有人能够提供相关帮助吗?
我希望创建一个 Windows 批处理文件,列出用户指定的根目录下所有空子目录。
有人能够提供相关帮助吗?
@echo off
for /d /r %1 %%A in (.) do (
dir /a /b "%%~fA" 2>nul | findstr "^" >nul || echo %%~fA
)
上述解决方案忽略了隐藏文件夹。我还被告知,在使用FOR命令时,同时使用/D和/R选项存在错误,尽管我从未遇到过问题。@echo off
dir /a /b %1 2>nul | findstr "^" >nul || echo %%~fA
for /f "eol=: delims=" %%A in ('dir /s /ad /b %1') do (
dir /a /b "%%~fA" 2>nul | findstr "^" >nul || echo %%~fA
)
第二种避免使用FOR /D /R的解决方案将包括隐藏文件夹。但我认为如果文件夹名称包含Unicode,则可能会失败。
^
字符,它实际上是一个原始的正则表达式,可以匹配任何行。^
字符表示行的开头。||
运算符只有在 FINDSTR 失败时才有条件地执行 echo %%~fA
,这意味着没有找到任何行,也就是目录为空。 - dbenham