[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]批处理判断空目录(有子目录)

本帖最后由 freesoft00 于 2015-11-2 00:20 编辑

dir /b abc\|findstr .>nul&&echo 非空||echo 空
这样如果abc有子目录的话,就判断不准确了,是否有办法只判断abc目录,而不理会是否有子目录。

回复  WHY
如果先判断文件在判断文件夹你那IF还有用吗?[可以继续抬下去顺带讨论]请楼上给出回答
/zhqsystem/zhq 发表于 2015-11-3 22:41



    sure

TOP

回复 11# WHY
如果先判断文件在判断文件夹你那IF还有用吗?[可以继续抬下去顺带讨论]请楼上给出回答
这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

回复 9# /zhqsystem/zhq


    抬下扛
  1. @echo off
  2. if not exist d:\a.txt\ if exist d:\a.txt (
  3.     for /f "delims=" %%i in (d:\a.txt) do echo %%i
  4. )
  5. pause
复制代码
比 dir /a-d &&...多几个字符不假, 可读性、执行效率不比dir差

TOP

回复 9# /zhqsystem/zhq


    谢谢了!

TOP

回复 3# freesoft00
在for的上一行加入dir/a-d/b "路径\文件名包含后缀">nul 2>nul&&(
for的循环
)
注意:括号会比原来的多一组,不建议用IF因为IF判断文件必须先判断有没有该同名的文件夹[if判断文件存在,会增加多判断一条指令,写起来代码也比较多]
这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

回复 6# freesoft00


    哦 理解错了
把 /s 去掉

TOP

回复 3# freesoft00
  1. for /f "delims=" %%i in ('type "d:\www.txt" 2^>nul') do echo %%i
复制代码
  1. (for /f "usebackq delims=" %%i in ("d:\www.txt") do echo %%i) 2>nul
复制代码

TOP

回复 4# WHY


        这个判断不准确,加了/s参数,子目录如果有文件的话,也会把上级目录判断为非空。

TOP

回复 2# /zhqsystem/zhq


    可以,感谢!

TOP

  1. dir /s /a-d abc\ >nul 2>&1 && echo 非空||echo 空
复制代码
1

评分人数

TOP

for /f "usebackq delims=" %%i in ("d:\www.txt")
如果没有d:\www.txt则报错。而下面这个则是错误的,
for /f "usebackq delims=" %%i in ("d:\www.txt"2^>nul)
应该如何能防止没有文件的时候报错。

TOP

  1. dir/ad/b 新建文件夹\|dir/a-d/b 新建文件夹\ >nul 2>nul&&echo,有数据||echo,无数据
复制代码
1

评分人数

这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

返回列表