无忧启动论坛

标题: 求个批处理,删除所有名称带 abc 字符的文件夹 [打印本页]

作者: szmsys    时间: 2023-5-20 20:45
标题: 求个批处理,删除所有名称带 abc 字符的文件夹
大家好,我想删除 D:\ 下所有名称带 abc 字符 的文件夹,批处理怎么写?谢谢

rd /s /q D:\*abc*

无效


作者: ezozo    时间: 2023-5-20 21:03
不知道帮顶下
作者: nttwqz    时间: 2023-5-20 21:06
先用for获取完整文件名在删除
作者: kkkssc    时间: 2023-5-20 21:31
你这个很危险啊,干嘛不逆向思维一下?  比如搜索关键字,然后排除掉有用的,再删除掉其余
作者: fulibo    时间: 2023-5-20 22:36
看过类似的批处理!
先收集所有文件夹的名字到一个文件!

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

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


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

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



作者: Metest    时间: 2023-5-21 10:59
本帖最后由 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

作者: Climbing    时间: 2023-5-21 11:22
同样来自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.
复制代码

作者: 2010linlance    时间: 2023-5-21 11:25
哈哈哈,刚想让chatGPT帮写呢,没想到楼上几位已经弄了。。
作者: yyz2191958    时间: 2023-5-21 11:27
2010linlance 发表于 2023-5-21 11:25
哈哈哈,刚想让chatGPT帮写呢,没想到楼上几位已经弄了。。

恭喜恭喜问题解决
作者: fzp070    时间: 2023-5-21 11:32
yyz2191958 发表于 2023-5-21 11:27
恭喜恭喜问题解决

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

原来是这样呀
作者: fzp070    时间: 2023-5-21 12:10
本帖最后由 fzp070 于 2023-5-21 12:19 编辑
yyz2191958 发表于 2023-5-21 11:59
原来是这样呀

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"】。
作者: yyz2191958    时间: 2023-5-21 13:13
fzp070 发表于 2023-5-21 12:10
6楼代码稍微改下就可以在批处理中运行,见下

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

有一点深奥
作者: leaguer    时间: 2023-5-21 14:23
看来chatGPT也学会了忽悠不求甚解的
作者: szmsys    时间: 2023-5-22 09:21
看来 chatGPT是个大忽悠啊
作者: 我在角落里    时间: 2023-5-22 21:18
chatgpt本身就不是真懂嘛,他很擅长不懂装懂。
作者: scvchina    时间: 2023-5-22 21:32
用FASTCOPY的命令行模式,选delete参数 具体用法网上一搜一大把
作者: Climbing    时间: 2023-5-22 21:48
fzp070 发表于 2023-5-21 11:32
没有解决吧!
7/8楼的代码,实际运行都不行的。6楼的放在CMD窗口可以,但放在批处理中不行。

8楼的代码实际运行怎么不行?
作者: hsis872    时间: 2023-5-22 21:56
这个行为很危险啊,一不小心就把工作文件夹或某些软件的文件夹给删了
作者: fzp070    时间: 2023-5-23 00:07
Climbing 发表于 2023-5-22 21:48
8楼的代码实际运行怎么不行?

你亲自试下啊大哥,没有找到对应的文件。
作者: Climbing    时间: 2023-5-24 09:36
fzp070 发表于 2023-5-23 00:07
你亲自试下啊大哥,没有找到对应的文件。

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

你的批处理和运行截图发上来。
作者: fzp070    时间: 2023-5-24 14:41
本帖最后由 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)







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

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

更新下:
今天又试了下,发现8楼代码,只能在指定的目录查找不能在子目录查找
因8楼代码,一开始cd /d D:\ 进入D盘根目录,所以只能在D盘根目录,查找包含ABC字符的文件夹。
总结,8楼代码限制较大,不太符合楼主需求。
作者: zhangz9    时间: 2023-5-25 14:49
学习了,牛人真多。
作者: jpt    时间: 2023-5-25 15:49

作者: szmsys    时间: 2023-5-25 19:17
学习了,牛逼真多。
作者: szmsys    时间: 2023-5-25 20:09
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"

目录名称无效。
作者: fzp070    时间: 2023-5-25 22:57
本帖最后由 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)


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

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

甲方需求描述不清楚,或者擅自变更需求,这是码农最讨厌的情况。
作者: Climbing    时间: 2023-5-26 14:52
fzp070 发表于 2023-5-24 14:41
1、批处理就是8楼的啊,对比验证的是13楼代码。
2、我将13楼代码,稍微修改,分成了【找包含ABCE字符的 ...

我要你把代码发上来,你给我发个录屏,就你这阅读理解能力,我觉得录屏也没用。

而且,你的需求是不是也包括删除子目录里的文件夹?如果是,参考上面的回复,先学会如何准确描述需求再来跟别人反馈问题。
作者: fzp070    时间: 2023-5-26 15:26
Climbing 发表于 2023-5-26 14:51
你看看顶楼楼主的需求,它就是只删除D:\(根目录下)含ABC的文件夹,你这个要求相当于变更了需求。自己描 ...

1、楼主并没有写只根目录,见楼主原文,D:\ 下所有名称带 abc 字符 的文件夹,也可以是包含子目录的。
如果只D盘根目录,那没太必要批处理,手动很快就搞定了。
我想删除 D:\ 下所有名称带 abc 字符 的文件夹


2、你要代码,我写很清楚,代码就是13楼的啊,你的代码仍是8楼的啊,还有必要单独发一份吗?另外在29楼是有上传附件的。你要这样视而不见,你要求什么就必须别人给你满足?未满足你就是阅读理解能力不行?

3、而且我也并没有怪别人和代码啊,我只是提出来不太符合,你说代码可以你列出证明就好,是我错了我会认,而且在24楼我也补充了在指定目录是可以的。没必要这么生气吧。。。哎,不想跟你争论,真没什么意义,也劝你心态放平和点。
作者: pengfangzhi    时间: 2023-5-26 15:40
本帖最后由 pengfangzhi 于 2023-5-26 15:46 编辑



这都22世纪了,可以用这种工具玩玩的呀。



作者: Climbing    时间: 2023-5-26 18:13
fzp070 发表于 2023-5-26 15:26
1、楼主并没有写只根目录,见楼主原文,D:\ 下所有名称带 abc 字符 的文件夹,也可以是包含子目录的。
...

以你这阅读理解能力,你肯定无法理解“D:\”中这个“\”的作用,我在上一个回帖里还加括号作了说明,这个表示D盘根目录。如果你想表示D:盘,要去掉这个\,懂了不?

我在8楼按要求给出了代码,而且,代码运行我测试完全正常,你上来说这个不行那个不行,我觉得跟我没关系。

而且,我犯不着跟谁生气啊,我只是本着负责任的态度把这个帖子完善。我要不想理你,我直接无视不就完了。
作者: vaf    时间: 2023-5-26 18:40
1a2b3c...形式多了去了!





欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3