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

我觉最好是保留最新生成的多少个文件夹,以免多次运行代码产生误删:
  1. @echo off
  2. cd /d "D:\张三"
  3. set num=20
  4. for /f "skip=%num% delims=" %%i in ('dir /b /o-d /ad') do rd /q /s "%%i"
复制代码
保留最新生成的前20个文件夹。
注意一定要存在路径“D:\张三”,否则会删除批处理文件所在路径中的除了最新生成的若干文件夹以外的所有文件夹。因为有rd命令,太危险了,切记切记!!!
最好在需要处理的文件夹中运行,上面代码去掉 cd /d "D:\张三"。这样风险要小一些。

TOP

回复 8# 朱科技
代码中如果有中文字符的话,批处理文件需要另存为ANSI编码。

TOP

本帖最后由 qixiaobin0715 于 2022-9-27 13:51 编辑

回复 12# 朱科技
桌面运行确实是没毛病。主要是如果你把代码误存为UTF-8编码,如果路径中有中文,代码不会识别路径,就会出问题,后面所有的命令都会默认在桌面路径执行,可能会删除桌面符合条件的所有的文件夹。
注意批处理文件用记事本打开,另存为ANSI编码
看你楼上的误删文件可能就是这个原因。
上面代码只是举例:保留最新生成的前20个文件夹而删除其他文件夹,如果文件夹个数不超过20个,当然不会有变化了。保留文件夹的个数请自行修改。

TOP

太笼统了,没明白你的意思,删除文件夹不就是连文件一块都删除了吗?请举例说明。

TOP

返回列表