如何检测文件夹是否为空(Windows 批处理文件)?

Roc*_*ard 4 windows console cmd batch-file windows-7

使用与 Windows 7 中的命令处理器兼容的简单批处理文件,如何检测文件夹是否有任何内容(意味着一个或多个文件或子文件夹,即非空)?

我试过:

IF EXIST C:\FOLDERNAME\* GOTO ROUTINE
Run Code Online (Sandbox Code Playgroud)

但这总是返回TRUE并因此转到ROUTINE

如何做到这一点?

use*_*477 7

dir /A /B "C:\FOLDERNAME" | findstr /R ".">NUL && GOTO ROUTINE
Run Code Online (Sandbox Code Playgroud)

如果至少有一行输出,则该目录不为空。
findstr /R "."结果将成为一个成功的退出码和&&将执行goto routine

  • 哎哟。我注意到 user2956477 的[原始答案](/revisions/43409248/2)是完全正确的,但随后社区用户以奇怪的方式[更改了它](/posts/43409248/revisions)。请某人**恢复到原始 user2956477 的版本**! (3认同)