批处理如何判断文件夹是否为空 为空则删除

查看 327|回复 20
孤山飞雪   
谢谢各位大佬分享
孤山飞雪   
进来学习
孤山飞雪   
okb,删除
孤山飞雪   
看这个行吗?
孤山飞雪   
我把楼主的问题直接写给AI了
AI和我的思路好像差不多,原来我就是AI
You写windows批处理的问题
情况是这样的 安装一个软件的不同版本 会在一个文件夹下生成不同的文件夹
比如在 D:\abc中 不同版本启动时 会在这个文件夹下用版本号建立文件夹 比如
D:\abc\5.0
D:\abc\6.0
D:\abc\7.0
根据软件操作 有时候会生成一些文件在这个版本号文件夹下 有时候只是空的版本号文件夹
请问 如何判断文件夹abc 是否为空(即不包含5.0 6.0 7.0任一个文件夹 存在任意一个空的版本号文件夹为非空) 判断为空时 则删除文件夹abc 同时建立文件夹D:\123 判断为非空时 则建立D:\efg
ChatGPT您可以使用以下代码来实现:
@echo off
set "folder=D:\abc"
set "empty=true"
for /d %%f in ("%folder%\*") do (
  set "empty=false"
)
if %empty%==true (
  rem 删除文件夹abc
  rmdir "%folder%"
  rem 创建D:\123文件夹
  mkdir "D:\123"
) else (
  rem 创建D:\efg文件夹
  mkdir "D:\efg"
)
首先,将您想要判断的文件夹路径保存在变量folder中。然后,我们将empty变量设置为true,以便用于检查文件夹是否为空。我们接着使用for循环遍历该路径下所有子文件夹,并且如果找到任何一个非空文件夹,则将empty变量设置为false。最后,我们使用if语句来根据empty变量的值分别执行不同的操作:当empty变量的值为true时,删除文件夹并创建新文件夹;否则,直接创建新的文件夹。请注意,在代码中,我使用了与您示例相同的文件夹名称和路径。如果您的实际情况略有不同,请相应地更改代码。
孤山飞雪   

Metest 发表于 2023-3-4 18:15
删除指定目录下所有空文件夹:
@echo off
for /f "delims=" %%a in ('dir /ad /b /s C:\^|sort /r') do (
...

谢谢分享经验
孤山飞雪   

vaf 发表于 2023-3-5 00:18
看这个行吗?

谢谢分享资源
孤山飞雪   

nttwqz 发表于 2023-3-4 18:20
之前分区调整脚本判断分区是否非空时写的,判断nofiles的值是否大于2,经过大量测试。格式化分区后只建立一 ...

谢谢分享经验
孤山飞雪   

江南一根葱 发表于 2023-3-5 10:38
我把楼主的问题直接写给AI了
AI和我的思路好像差不多,原来我就是AIYou写windows批处理的问题
情况是这样 ...

谢谢分享答案 最近看ChatGPT内卷程序员的新闻 原来可以这么用 看来AI确实挺强大 感谢大佬分享经验
孤山飞雪   
rd 配合 errorlevel 应该就可以
您需要登录后才可以回帖 登录 | 立即注册

返回顶部