加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

批处理判断目录是否空,统计文件夹中的文件的个数

(2020-05-24 10:59:08)
标签:

批处理

判断空目录

统计文件个数

分类: 批处理(脚本)

批处理判断目录是否空


:: 代码1
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /ad /b') do (
set n=0
for /f %%j in ('dir "%%i" /a /b') do set /a n+=1
if !n!==0 echo %%i>>空目录道名.txt
)
如果包括子内目录,把 'dir /ad /b' 改为容 'dir /ad /b /s',另!n!其实相当变量%n的引用%n%,因为启用了变量延迟,所以就要变成这样。 变量延迟 "setlocal enabledelayedexpansion"

::代码2
@echo off&if not exist F:\测试\*.* set/p=该目录zhidao为空pause>nul&exit

当然这是比较简单的例子

用for做的效果会更好!

LS那位写的比较复杂,也不需要用2个for

@echo off&for /f %%i in ('dir /s/b "F:\测试\*.*"') do if not exist %%i set/p=该目录为空nul&exit


说明:上面两个代码,一个用FOR和两个FOR循环一样实现判断空目录。


批处理统计某文件夹中文件的个数


代码1:
cd /d %~dp0
d:
cd .\112
dir /B /A-D .\*.* | find /V /C "">count.txt
set /P c=
echo %c%
pause
exit

以上为全部代码,我才测试过,完全符合你的要求,你在最后一行会看到文件数量


代码2:
@echo off
 
if {%1}=={} echo.Synatx: %0 path & goto end
if not exist "%~1" echo. "%~1" not found. & goto end
 
for /f "delims=" %%a in ('dir /a-d-s-h /b "%~1" ^| find /v /c ""') do (
  echo.Total file^(s^): %%a
)
 
:end
@echo on

前面有人给出了用find求文件个数的方版案,很好。 不过要注意以下细节, dir参数一要注意/a-d/-s-h, 二要带/b参数,才能得到正确结果。
如果需要统计可能的隐藏文件和系统文权件等,那么dir /a-d 不行,但要dir /a-d /b才可。

代码3:
@echo off
for /f "delims=" %%i in ('dir/b/a-d "d:\112" 2^>nul') do set /a cnt+=1
if defined cnt (echo,共有%cnt%个文件.) else echo,没有找到文件.
pause
你可以把百"D:\112"修改成你想要的任何度文件夹;
如果希望将”D:\112“下的子文知件夹下的文件也包含在内的话,在道dir后面再加个/s


以上三个代码,第一,二代码用FIND函数来统计,个人感觉还是第三个代码用FOR循环比较好理解,效率应该也是最高。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有