DOS:检查目录是否只包含子目录而不包含文件

时间:2015-06-29 09:26:54

标签: batch-file batch-processing dos

我有一个目录,其子目录如下:

C:\FILES
C:\FILES\DONE

我想检查FILES是否包含没有文件:

if not exist C:\FILES\*.* (
  echo No files to process.
  exit /b 
)

但测试"不存在......"由于子目录,它永远不会是真的。

关于如何检查目录是否有任何不是目录的文件的任何想法?

5 个答案:

答案 0 :(得分:2)

尝试获取文件列表,如果失败,则没有文件

dir /a-d "c:\files\*" >nul 2>nul || (
    echo No files to process
    exit /b
)

如果没有文件,dir /a-d命令(交换机意味着排除目录)将失败。 ||是一个条件执行运算符,如果前一个命令失败,它将执行以下命令。

答案 1 :(得分:1)

仅当有文件时,<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="10dp" android:fillViewport="false"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> </LinearLayout> </ScrollView> 才会执行for

goto

答案 2 :(得分:0)

简单代码:

for /f "delims=|" %%f in ('dir /b c:\FILES\') do goto :files
echo No files found
pause
goto:eof
:files
echo Files found
pause
goto:eof

答案 3 :(得分:0)

如果要检查此级别上是否存在子目录:

(DIR /D "C:\FILES\" | findstr /i /p /r /c:"2 Directory" > nul 2> nul) && echo "No directories except current and parent."

这个简单的内联命令可以很容易地适应任何情况;-)

答案 4 :(得分:-1)

尝试

if not exist dir c:\FILES\*.* /a:-d (

您可以在dir here

上找到更多信息

PS

我没有DOS。所以我无法测试上面的代码片段。但我认为它接近你正在寻找的东西。如果没有非常接近的东西应该有效。