标题: [文件操作] [已解决]批处理判断空目录(有子目录) [打印本页]
作者: freesoft00 时间: 2015-11-1 22:39 标题: [已解决]批处理判断空目录(有子目录)
本帖最后由 freesoft00 于 2015-11-2 00:20 编辑
dir /b abc\|findstr .>nul&&echo 非空||echo 空
这样如果abc有子目录的话,就判断不准确了,是否有办法只判断abc目录,而不理会是否有子目录。
作者: /zhqsystem/zhq 时间: 2015-11-1 23:00
- dir/ad/b 新建文件夹\|dir/a-d/b 新建文件夹\ >nul 2>nul&&echo,有数据||echo,无数据
复制代码
作者: freesoft00 时间: 2015-11-1 23:01
for /f "usebackq delims=" %%i in ("d:\www.txt")
如果没有d:\www.txt则报错。而下面这个则是错误的,
for /f "usebackq delims=" %%i in ("d:\www.txt"2^>nul)
应该如何能防止没有文件的时候报错。
作者: WHY 时间: 2015-11-1 23:09
- dir /s /a-d abc\ >nul 2>&1 && echo 非空||echo 空
复制代码
作者: freesoft00 时间: 2015-11-1 23:10
回复 2# /zhqsystem/zhq
可以,感谢!
作者: freesoft00 时间: 2015-11-1 23:13
回复 4# WHY
这个判断不准确,加了/s参数,子目录如果有文件的话,也会把上级目录判断为非空。
作者: WHY 时间: 2015-11-1 23:15
回复 3# freesoft00 - for /f "delims=" %%i in ('type "d:\www.txt" 2^>nul') do echo %%i
复制代码
- (for /f "usebackq delims=" %%i in ("d:\www.txt") do echo %%i) 2>nul
复制代码
作者: WHY 时间: 2015-11-1 23:20
回复 6# freesoft00
哦 理解错了
把 /s 去掉
作者: /zhqsystem/zhq 时间: 2015-11-1 23:21
回复 3# freesoft00
在for的上一行加入dir/a-d/b "路径\文件名包含后缀">nul 2>nul&&(
for的循环
)
注意:括号会比原来的多一组,不建议用IF因为IF判断文件必须先判断有没有该同名的文件夹[if判断文件存在,会增加多判断一条指令,写起来代码也比较多]
作者: freesoft00 时间: 2015-11-2 00:18
回复 9# /zhqsystem/zhq
谢谢了!
作者: WHY 时间: 2015-11-3 09:25
回复 9# /zhqsystem/zhq
抬下扛- @echo off
- if not exist d:\a.txt\ if exist d:\a.txt (
- for /f "delims=" %%i in (d:\a.txt) do echo %%i
- )
- pause
复制代码
比 dir /a-d &&...多几个字符不假, 可读性、执行效率不比dir差
作者: /zhqsystem/zhq 时间: 2015-11-3 22:41
回复 11# WHY
如果先判断文件在判断文件夹你那IF还有用吗?[可以继续抬下去顺带讨论]请楼上给出回答
作者: WHY 时间: 2015-11-3 23:49
回复 WHY
如果先判断文件在判断文件夹你那IF还有用吗?[可以继续抬下去顺带讨论]请楼上给出回答
/zhqsystem/zhq 发表于 2015-11-3 22:41
sure
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |