楼 主
请教:学习中的问题,set,if
发表于 2007-03-07 06:41 · 中国 四川 绵阳 江油市 电信
高级用户
★★★
积分 502 发帖 327 注册 2006-12-30 06:01 19年会员 UID 74981 性别 男
状态 离线
@echo off
:: 探测空文件夹
:: code by jm 2006-12-4
set num=0
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /ad /b /s') do (
for /f %%j in ('dir /a "%%i"') do set /a num+=1
if !num! lss 8 echo "%%i" 下没有文件
set num=0
)
pause
上面第二个for中为何要用set,累加后(set /a num+=1)为何又要归零(set num=0)
if在这又是什么意思呢!num!小于8就没文件了,%%j不是就没得意义罗,请教了
[ Last edited by qingfushuan on 2007-3-6 at 05:49 PM ]
第 2 楼
发表于 2007-03-07 07:24 · 中国 河南 新乡 联通
初级用户
★
积分 88 发帖 40 注册 2006-12-26 07:32 19年会员 UID 74591 性别 男
状态 离线
当用DIR查询一个空文件夹时,显示的信息总共会是9行,至于第2个FOR用SET意思是当文件夹下有%%i这个文件就执行后面的SET语句使NUM自加1然后当SET小于8行的话就显示没有文件
第 3 楼
发表于 2007-03-07 07:32 · 中国 四川 绵阳 江油市 电信
高级用户
★★★
积分 502 发帖 327 注册 2006-12-30 06:01 19年会员 UID 74981 性别 男
状态 离线
第 4 楼
发表于 2007-03-07 07:49 · 中国 浙江 绍兴 电信
高级用户
★★★
Autowalk
积分 845 发帖 375 注册 2007-03-03 01:58 19年会员 UID 80606 性别 男
状态 离线
第 5 楼
发表于 2007-03-07 08:24 · 中国 四川 绵阳 江油市 电信
高级用户
★★★
积分 502 发帖 327 注册 2006-12-30 06:01 19年会员 UID 74981 性别 男
状态 离线
第 6 楼
发表于 2007-03-07 09:16 · 中国 浙江 绍兴 电信
高级用户
★★★
Autowalk
积分 845 发帖 375 注册 2007-03-03 01:58 19年会员 UID 80606 性别 男
状态 离线
echo off
set num=0
for /f "delims=" %%i in ('dir /b /s /a-d e:\bat') do (for /f %%j in ('dir /b /a-d "%%i"') do set /a num+=1)
echo 此文件夹中有%num%个文件!
pause
文件夹的路径自己改下,不计算子文件夹的个数的
第 7 楼
发表于 2007-03-07 10:31 · 中国 河南 新乡 联通
初级用户
★
积分 88 发帖 40 注册 2006-12-26 07:32 19年会员 UID 74591 性别 男
状态 离线
@echo off
set flag=
for /f %%i in ('dir /a /b "目标文件夹"') do set flag=1
if defined flag (echo 文件夹非空) else echo 这是个空文件夹
pause
给个NA斑竹写的 更简洁的
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正