无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 6816|回复: 39
打印 上一主题 下一主题

[求助] 求个批处理,删除所有名称带 abc 字符的文件夹

    [复制链接]
跳转到指定楼层
1#
发表于 2023-5-20 20:45:21 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
大家好,我想删除 D:\ 下所有名称带 abc 字符 的文件夹,批处理怎么写?谢谢

rd /s /q D:\*abc*

无效

评分

参与人数 1无忧币 +1 收起 理由
pengfangzhi + 1 教你用ai查查了,百度的。你可以自己多试试.

查看全部评分

2#
发表于 2023-5-20 21:03:00 | 只看该作者
不知道帮顶下

评分

参与人数 1无忧币 +5 收起 理由
szmsys + 5 很给力!

查看全部评分

回复

使用道具 举报

3#
发表于 2023-5-20 21:06:08 | 只看该作者
先用for获取完整文件名在删除

评分

参与人数 1无忧币 +5 收起 理由
szmsys + 5 很给力!

查看全部评分

回复

使用道具 举报

4#
发表于 2023-5-20 21:31:45 | 只看该作者
你这个很危险啊,干嘛不逆向思维一下?  比如搜索关键字,然后排除掉有用的,再删除掉其余

评分

参与人数 1无忧币 +5 收起 理由
szmsys + 5

查看全部评分

回复

使用道具 举报

5#
发表于 2023-5-20 22:36:07 | 只看该作者
看过类似的批处理!
先收集所有文件夹的名字到一个文件!

拷贝在文件里面符合关键字的文件夹名字到另一个文件!

删除第二个文件里面的文件夹!

评分

参与人数 1无忧币 +5 收起 理由
szmsys + 5 很给力!

查看全部评分

回复

使用道具 举报

6#
发表于 2023-5-20 23:41:52 | 只看该作者
本帖最后由 2010techon 于 2023-5-20 23:43 编辑
  1. for /f "delims=" %c in ('dir /a:d/s/b D:*ABC*') do @echo "%~fc"
复制代码
命令行直接执行。

请先确认没问题再将后面的 @echo 替换为 rd 命令


评分

参与人数 1无忧币 +5 收起 理由
szmsys + 5 很给力!

查看全部评分

回复

使用道具 举报

7#
发表于 2023-5-21 10:59:00 | 只看该作者
本帖最后由 Metest 于 2023-5-21 11:00 编辑

可以使用以下批处理代码删除D:\下所有名称带abc字符的文件夹:

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /d %%i in (D:\*abc*) do (
  4.     echo Deleting folder: "%%i"
  5.     rd /s /q "%%i"
  6. )
  7. echo All folders containing "abc" have been deleted.
复制代码

这段代码使用了 for 循环来枚举以 abc 为名称的所有文件夹,并使用 rd 命令将其删除。其中 /s 参数表示在删除文件夹时也会删除其中的所有内容,/q 参数表示不要提示用户进行确认。

请注意,在运行此脚本之前,请务必备份 D:\ 中的数据,以防意外情况导致数据丢失。
以上代码来自ChatGPT

点评

666  发表于 2023-5-21 11:00

评分

参与人数 1无忧币 +5 收起 理由
szmsys + 5 神马都是浮云

查看全部评分

回复

使用道具 举报

8#
发表于 2023-5-21 11:22:17 | 只看该作者
同样来自chatGPT:


  1. @echo off
  2. cd /d D:\
  3. for /d %%D in (*abc*) do (
  4.    echo Deleting folder %%D
  5.    rd /s /q "%%D"
  6. )
  7. echo Task completed.
复制代码

点评

我用百度的代码看起来貌似更简洁清楚,后面发了去看看  发表于 2023-5-26 15:43

评分

参与人数 1无忧币 +5 收起 理由
szmsys + 5 很给力!

查看全部评分

回复

使用道具 举报

9#
发表于 2023-5-21 11:25:46 | 只看该作者
哈哈哈,刚想让chatGPT帮写呢,没想到楼上几位已经弄了。。

点评

恭喜恭喜问题解决  详情 回复 发表于 2023-5-21 11:27

评分

参与人数 1无忧币 +5 收起 理由
szmsys + 5 很给力!

查看全部评分

回复

使用道具 举报

10#
发表于 2023-5-21 11:27:32 | 只看该作者
2010linlance 发表于 2023-5-21 11:25
哈哈哈,刚想让chatGPT帮写呢,没想到楼上几位已经弄了。。

恭喜恭喜问题解决

点评

没有解决吧! 7/8楼的代码,实际运行都不行的。6楼的放在CMD窗口可以,但放在批处理中不行。  详情 回复 发表于 2023-5-21 11:32

评分

参与人数 1无忧币 +5 收起 理由
szmsys + 5 很给力!

查看全部评分

回复

使用道具 举报

11#
发表于 2023-5-21 11:32:31 | 只看该作者
yyz2191958 发表于 2023-5-21 11:27
恭喜恭喜问题解决

没有解决吧!
7/8楼的代码,实际运行都不行的。6楼的放在CMD窗口可以,但放在批处理中不行。

点评

8楼的代码实际运行怎么不行?  详情 回复 发表于 2023-5-22 21:48
原来是这样呀  详情 回复 发表于 2023-5-21 11:59

评分

参与人数 1无忧币 +5 收起 理由
szmsys + 5 很给力!

查看全部评分

回复

使用道具 举报

12#
发表于 2023-5-21 11:59:23 | 只看该作者
fzp070 发表于 2023-5-21 11:32
没有解决吧!
7/8楼的代码,实际运行都不行的。6楼的放在CMD窗口可以,但放在批处理中不行。

原来是这样呀

点评

6楼代码稍微改下就可以在批处理中运行,见下 确认没问题再将后面的 echo 替换为 rd 命令【rd /s /q "%%~fc"】。  详情 回复 发表于 2023-5-21 12:10

评分

参与人数 1无忧币 +5 收起 理由
szmsys + 5 很给力!

查看全部评分

回复

使用道具 举报

13#
发表于 2023-5-21 12:10:14 | 只看该作者
本帖最后由 fzp070 于 2023-5-21 12:19 编辑

6楼代码稍微改下就可以在批处理中运行,见下
  1. @echo off
  2. for /f "delims=" %%c in ('dir /a-d/s/b D:\*abc*') do echo "%%~fc"
  3. pause
复制代码

确认没问题再将后面的 echo 替换为 rd 命令【rd /s /q "%%~fc"】。

点评

感谢帮助翻译:)  发表于 2023-5-22 15:20
有一点深奥  详情 回复 发表于 2023-5-21 13:13

评分

参与人数 1无忧币 +5 收起 理由
szmsys + 5 很给力!

查看全部评分

回复

使用道具 举报

14#
发表于 2023-5-21 13:13:43 | 只看该作者
fzp070 发表于 2023-5-21 12:10
6楼代码稍微改下就可以在批处理中运行,见下

确认没问题再将后面的 echo 替换为 rd 命令【rd /s /q "% ...

有一点深奥

评分

参与人数 1无忧币 +5 收起 理由
szmsys + 5 很给力!

查看全部评分

回复

使用道具 举报

15#
发表于 2023-5-21 14:23:31 | 只看该作者
看来chatGPT也学会了忽悠不求甚解的

评分

参与人数 1无忧币 +5 收起 理由
szmsys + 5 很给力!

查看全部评分

回复

使用道具 举报

16#
 楼主| 发表于 2023-5-22 09:21:26 | 只看该作者
看来 chatGPT是个大忽悠啊
回复

使用道具 举报

17#
发表于 2023-5-22 21:18:02 | 只看该作者
chatgpt本身就不是真懂嘛,他很擅长不懂装懂。
回复

使用道具 举报

18#
发表于 2023-5-22 21:32:42 | 只看该作者
用FASTCOPY的命令行模式,选delete参数 具体用法网上一搜一大把
回复

使用道具 举报

19#
发表于 2023-5-22 21:48:39 | 只看该作者
fzp070 发表于 2023-5-21 11:32
没有解决吧!
7/8楼的代码,实际运行都不行的。6楼的放在CMD窗口可以,但放在批处理中不行。

8楼的代码实际运行怎么不行?

点评

你亲自试下啊大哥,没有找到对应的文件。  详情 回复 发表于 2023-5-23 00:07
回复

使用道具 举报

20#
发表于 2023-5-22 21:56:54 | 只看该作者
这个行为很危险啊,一不小心就把工作文件夹或某些软件的文件夹给删了
回复

使用道具 举报

21#
发表于 2023-5-23 00:07:00 | 只看该作者
Climbing 发表于 2023-5-22 21:48
8楼的代码实际运行怎么不行?

你亲自试下啊大哥,没有找到对应的文件。

点评

看到你的回复后,我亲自试过了,没有问题才问你的。 你的批处理和运行截图发上来。  详情 回复 发表于 2023-5-24 09:36
回复

使用道具 举报

22#
发表于 2023-5-24 09:36:10 | 只看该作者
fzp070 发表于 2023-5-23 00:07
你亲自试下啊大哥,没有找到对应的文件。

看到你的回复后,我亲自试过了,没有问题才问你的。

你的批处理和运行截图发上来。

点评

更新下: 今天又试了下,发现8楼代码,只能在指定的目录查找,不能在子目录查找。 因8楼代码,一开始cd /d D:\ 进入D盘根目录,所以只能在D盘根目录,查找包含ABC字符的文件夹。 总结,8楼代码限制较大,不太符合  详情 回复 发表于 2023-5-25 13:04
批处理就是13楼的啊,录屏内我将代码分成了【找包含ABCE字符的文件】和【找包含ABCE字符的文件夹】。为啥改成了ABCE和E盘,是为了录屏减少点时间,包含ABC的太多了,就自建了包含ABCE的文件和文件夹,方便快速验证。  详情 回复 发表于 2023-5-24 14:41
回复

使用道具 举报

23#
发表于 2023-5-24 14:41:38 | 只看该作者
本帖最后由 fzp070 于 2023-5-24 15:13 编辑
Climbing 发表于 2023-5-24 09:36
看到你的回复后,我亲自试过了,没有问题才问你的。

你的批处理和运行截图发上来。

1、批处理就是8楼的啊,对比验证的是13楼代码。
2、我将13楼代码,稍微修改,分成了【找包含ABCE字符的文件】和【找包含ABCE字符的文件夹】。
3、ABC字符和D盘,改成了ABCE和E盘,是为了录屏减少点时间,包含ABC的太多了,就自建了包含ABCE的文件和文件夹,方便快速验证。

截图见下,录屏见附件。
也请你上传你验证的截图和录屏,你实际试的代码还是用得8楼的吧!



录屏Video_2023-05-24_142651.7z (441.14 KB, 下载次数: 4)






点评

我要你把代码发上来,你给我发个录屏,就你这阅读理解能力,我觉得录屏也没用。 而且,你的需求是不是也包括删除子目录里的文件夹?如果是,参考上面的回复,先学会如何准确描述需求再来跟别人反馈问题。  详情 回复 发表于 2023-5-26 14:52
C:%users\1POS>for /f "delims=" %c in ('dir /a-d/s/b D:\*abc*') do rd /s /q "%~fc" C:%users\1POS>rd /s /q "D:\1ABC2.txt" 目录名称无效。  详情 回复 发表于 2023-5-25 20:09
C:\Users\1POS>for /f "delims=" %c in ('dir /a-d/s/b D:\*abc*') do rd /s /q "%~fc" C:\Users\1POS>rd /s /q "D:\1ABC2.txt" 目录名称无效。  发表于 2023-5-25 20:08

评分

参与人数 1无忧币 +5 收起 理由
szmsys + 5 谢谢!麻烦把2个批处理发上来学习

查看全部评分

回复

使用道具 举报

24#
发表于 2023-5-25 13:04:21 | 只看该作者
Climbing 发表于 2023-5-24 09:36
看到你的回复后,我亲自试过了,没有问题才问你的。

你的批处理和运行截图发上来。

更新下:
今天又试了下,发现8楼代码,只能在指定的目录查找不能在子目录查找
因8楼代码,一开始cd /d D:\ 进入D盘根目录,所以只能在D盘根目录,查找包含ABC字符的文件夹。
总结,8楼代码限制较大,不太符合楼主需求。

点评

你看看顶楼楼主的需求,它就是只删除D:\(根目录下)含ABC的文件夹,你这个要求相当于变更了需求。自己描述需求有问题,不要怪到别人的代码上。 甲方需求描述不清楚,或者擅自变更需求,这是码农最讨厌的情况。  详情 回复 发表于 2023-5-26 14:51

评分

参与人数 1无忧币 +5 收起 理由
szmsys + 5 很给力!

查看全部评分

回复

使用道具 举报

25#
发表于 2023-5-25 14:49:28 | 只看该作者
学习了,牛人真多。
回复

使用道具 举报

26#
发表于 2023-5-25 15:49:02 | 只看该作者
回复

使用道具 举报

27#
 楼主| 发表于 2023-5-25 19:17:29 | 只看该作者
学习了,牛逼真多。
回复

使用道具 举报

28#
 楼主| 发表于 2023-5-25 20:09:05 | 只看该作者
fzp070 发表于 2023-5-24 14:41
1、批处理就是8楼的啊,对比验证的是13楼代码。
2、我将13楼代码,稍微修改,分成了【找包含ABCE字符的 ...

C:\Users\1POS>for /f "delims=" %c in ('dir /a-d/s/b D:\*abc*') do rd /s /q "%~fc"

C:\Users\1POS>rd /s /q "D:\1ABC2.txt"

目录名称无效。

点评

28楼代码获取的是文件,不是文件夹,所以不能用rd来删除。应该如下 附批处理:  详情 回复 发表于 2023-5-25 22:57
回复

使用道具 举报

29#
发表于 2023-5-25 22:57:50 | 只看该作者
本帖最后由 fzp070 于 2023-5-25 23:09 编辑
szmsys 发表于 2023-5-25 20:09
C:%users\1POS>for /f "delims=" %c in ('dir /a-d/s/b D:\*abc*') do rd /s /q "%~fc"

C:%users\1POS ...

28楼代码获取的是文件,不是文件夹,所以不能用rd来删除。应该如下
  1. for /f "delims=" %c in ('dir /a:d/s/b D:*abc*') do rd /s /q "%~fc"
复制代码
附批处理:
批处理.7z (524 Bytes, 下载次数: 8)

点评

谢谢  发表于 2023-5-26 07:12
回复

使用道具 举报

30#
发表于 2023-5-26 14:51:02 | 只看该作者
fzp070 发表于 2023-5-25 13:04
更新下:
今天又试了下,发现8楼代码,只能在指定的目录查找,不能在子目录查找。
因8楼代码,一开始cd ...

你看看顶楼楼主的需求,它就是只删除D:\(根目录下)含ABC的文件夹,你这个要求相当于变更了需求。自己描述需求有问题,不要怪到别人的代码上。

甲方需求描述不清楚,或者擅自变更需求,这是码农最讨厌的情况。

点评

1、楼主并没有写只根目录,见楼主原文,D:\ 下所有名称带 abc 字符 的文件夹,也可以是包含子目录的。 如果只D盘根目录,那没太必要批处理,手动很快就搞定了。 2、你要代码,我写很清楚,代码就是13楼的啊,  详情 回复 发表于 2023-5-26 15:26
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-8-8 22:07

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表