批处理文件 - IF EXIST *。*

时间:2014-02-18 12:33:14

标签: batch-file if-statement

我正在尝试编写一个非常简单的小批处理脚本来确定目录是否包含任何有效文件,如果有,则执行复制命令或完成。然而,即使我知道目录T:为空,下面仍然认为那里有一个文件。它可能是一些隐藏的或系统文件,我怎么能忽略这些文件?

IF EXIST T:\*.* goto STAGE1
goto FINISH

我已经改编了一个专门寻找* .TXT文件的上一个批处理文件但是我不能确定新文件将始终是一个特定类型所以我需要脚本来查找任何文件类型。我可以使用任何开关吗?

1 个答案:

答案 0 :(得分:1)

dir /a-d "t:\*.*" >nul 2>nul && goto stage1 || goto finish

如果dir命令没有找到指定的文件(我已经排除了子文件夹),它将设置errorlevel 1.所以,检查。如果没有错误级别转到stage1,否则转到结束

EDITED - 处理子目录的情况,不包括隐藏的目录

dir /a-d "t:\" >nul 2>nul && goto stage1 
for /d /r "t:\" %%a in ("*") do ( dir /a-d "%%~fa\*" >nul 2>nul && goto stage1 )
goto finish

它将开始检查指定的文件夹,如果没有找到文件,则对递归列表中的每个目录重复上一个命令。如果找到任何文件,请转到stage1。如果命令完成并且到达下一行,则转到完成。