找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 21676|回复: 5

[文件操作] 【已解决】求bat脚本清空文件夹,保留 desktop.ini 文件。谢谢

[复制链接]
发表于 2024-1-4 16:28:41 | 显示全部楼层 |阅读模式
完美解决了:
  1. @echo off
  2. attrib -h D:\工具\* /S /D
  3. attrib -h D:\常用\* /S /D
  4. for %%d in ("D:\工具" "D:\常用") do (
  5.     cd /d %%d
  6.     for /f "delims=" %%i in ('dir /a /b /s ^| findstr /v /i /c:"desktop.ini"') do (
  7.         if not "%%~nxi"=="desktop.ini" (
  8.             if not "%%~fi"=="%%d\desktop.ini" (
  9.                 del /q "%%i"
  10.             )
  11.         )
  12.     )
  13.     for /d %%i in (*) do (
  14.         if not "%%i"=="desktop.ini" (
  15.             rd /s /q "%%i"
  16.         )
  17.     )
  18. )
复制代码
=======================
原来的问题:
需要清空文件夹的有:
D:\工具
D:\常用
==================
需要保留的文件有:
D:\工具\desktop.ini
D:\常用\desktop.ini

==================
两个文件夹里面的其它文件,文件夹全部删除(包括里面的子文件夹————也删除)

谢谢

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2024-1-4 16:44:11 | 显示全部楼层
本帖最后由 qixiaobin0715 于 2024-1-4 16:48 编辑

慎用。特别是rd命令:
  1. @echo off
  2. cd /d "D:\工具\desktop.ini"
  3. for /f "delims=" %%i in ('dir /b /ad') do rd /s /q /f "%%i"
  4. for /f "delims=" %%i in ('dir /b /a-d^|findstr /v /x desktop.ini') do del "%%i"
  5. cd /d "D:\常用\desktop.ini"
  6. for /f "delims=" %%i in ('dir /b /ad') do rd /s /q /f "%%i"
  7. for /f "delims=" %%i in ('dir /b /a-d^|findstr /v /x desktop.ini') do del "%%i"
复制代码
D:\工具\
D:\常用\
这2个目录一定要存在,否则会清理批处理文件所在的目录,批处理文件也不要放在这2个目录中,否则会删除批处理文件本身。

评分

参与人数 1技术 +1 收起 理由
yyz219 + 1 乐于助人

查看全部评分

 楼主| 发表于 2024-1-4 16:55:11 | 显示全部楼层
回复 2# qixiaobin0715


    我试一试先 谢谢
 楼主| 发表于 2024-1-4 17:02:35 | 显示全部楼层
回复 2# qixiaobin0715


    我放在:X:\Users\Default\Desktop\
结果删除了 X:\Users\Default\Desktop\ 的所有快捷方式
 楼主| 发表于 2024-1-4 17:11:16 | 显示全部楼层
我修改了一下也不行:
@echo off
cd /d "D:\工具\"
for /f "delims=" %%i in ('dir /b /ad') do rd /s /q /f "%%i"
for /f "delims=" %%i in ('dir /b /a-d^|findstr /v /x desktop.ini') do del "%%i"
cd /d "D:\常用\"
for /f "delims=" %%i in ('dir /b /ad') do rd /s /q /f "%%i"
for /f "delims=" %%i in ('dir /b /a-d^|findstr /v /x desktop.ini') do del "%%i"
 楼主| 发表于 2024-1-4 17:25:13 | 显示全部楼层
回复 5# yyz219


    这样,文件是删除了

但是,里面的子文件夹及里面的文件还在
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 06:38 , Processed in 0.017151 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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