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

[文本处理] [已解决]批处理怎样删除除C盘外所有盘下面的空目录?

[复制链接]
发表于 2011-6-26 13:23:15 | 显示全部楼层 |阅读模式


  1. ;删除所有盘下面的空目录(系统盘c盘除外)
  2. for %%a in (d e f g h i j k l m n o p q r s t) do (
  3. for /f "tokens=*" %%j in ('dir /s/ad/b %%a:') do rd "%%j" 1>nul 2>nul
  4. )
  5. cls

复制代码
这个代码,xp系统下运行,一般情况下不会出现问题。


但如果使用读卡器+SD卡(sd卡已经打开写保护开关),或者使用带写保护开关的u盘(u盘已经设置到写保护状态)

这种情况下,运行代码,就会弹出窗口。

如果实现不弹出窗口?

评分

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

查看全部评分

发表于 2011-6-26 13:45:05 | 显示全部楼层
wmic logicaldisk where access="0" get name /value
 楼主| 发表于 2011-6-26 13:52:32 | 显示全部楼层
多谢啊。

wmic命令不太懂。
能否给出完整的代码,实现要求的功能??
发表于 2011-6-26 13:59:06 | 显示全部楼层
  1. for /f "tokens=2 delims=:" %%a in ('
  2.    wmic logicaldisk where access="0" get name /value
  3. ) do if "%%a" neq "" (
  4.    for /f "tokens=*" %%j in ('dir /s/ad/b %%a:') do rd "%%j" 1>nul 2>nul
  5. )
复制代码
 楼主| 发表于 2011-6-26 14:09:56 | 显示全部楼层
以上代码,运行了,不行。
发表于 2011-6-26 15:23:46 | 显示全部楼层
这个标题词不达意——其实是要操作写保护的移动盘。(这跟删除空文件有什么关系,写了保护你删除非空文件夹又删的掉了?)
 楼主| 发表于 2011-6-26 15:39:31 | 显示全部楼层


  1. for /f "skip=1 delims=" %%a in ('Wmic LogicalDisk Where "DriveType='2' and SupportsDiskQuotas='FALSE'" Get DeviceID') do call :s1 %%a

  2. for /f "skip=1 delims=" %%a in ('Wmic LogicalDisk Where "DriveType='3'" Get DeviceID') do call :s1 %%a


  3. :s1

  4. if "%~1"=="" goto:eof

  5. if exist "%1\RECYCLER" rd /s /q "%1\RECYCLER" >nul 2>nul
  6. cls

  7. if exist "%1\Recycled" rd /s /q "%1\Recycled" >nul 2>nul
  8. cls

  9. if exist "%1\$RECYCLE.BIN" rd /s /q "%1\$RECYCLE.BIN" >nul 2>nul
  10. cls

  11. for /f "delims=" %%i in ('dir /b /a:d %1\FOUND.* 2^>nul') do (

  12.     rd /s /q "%1\%%i"

  13. )

复制代码


  1. ;删除所有盘下面的空目录(系统盘c盘除外)
  2. for %%a in (d e f g h i j k l m n o p q r s t) do (
  3. for /f "tokens=*" %%j in ('dir /s/ad/b %%a:') do rd "%%j" 1>nul 2>nul
  4. )
  5. cls

复制代码
以上这2个代码,能否配合下,实现:
1、不弹出窗口(如果SD卡或者u盘是写保护了的话)
2、能删除所有盘下面的空目录(系统盘c盘除外)?
 楼主| 发表于 2011-6-26 16:23:22 | 显示全部楼层
解决了。。


  1. echo 删除所有盘下面的空目录(系统盘c盘除外)
  2. for %%i in (D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
  3. fsutil fsinfo drivetype %%i: | find "固定">nul && (
  4. for /f "tokens=*" %%j in ('dir /s/ad/b %%i:') do rd "%%j" 1>nul 2>nul
  5. )
  6. )

复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 07:04 , Processed in 0.018610 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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