中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-07 12:49
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决]---cmd 如何搜索硬盘上“Temp”的文件夹 查看 2,972 回复 16
楼 主 [已解决]---cmd 如何搜索硬盘上“Temp”的文件夹 发表于 2008-02-03 12:03 ·  中国 天津 电信
中级用户
★★
积分 310
发帖 97
注册 2004-05-26 00:00
22年会员
UID 25372
性别 男
状态 离线
如何搜索全部硬盘上的名为“Temp”的文件夹,并全部删除里面的文件(不删除“Temp”文件夹?

谢谢

[ Last edited by shawell518 on 2008-2-6 at 08:02 PM ]
2 发表于 2008-02-03 12:18 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
18年会员
UID 103127
性别 男
状态 离线
你都是老用户了,
for + if +del /a/q/s name
3 发表于 2008-02-03 14:53 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
@echo off
setlocal enabledelayedexpansion
for /f "delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do (
set var=%%i
set drive=!var:~-2!
fsutil fsinfo drivetype !drive!|find "固定">nul && for /f "delims=" %%a in ('dir /s/b !drive!\name\* 2^>nul') do rd /s /q "%%a" 2>nul||del /q/f/a "%%a" 2>nul
)
pause
第一高手 第二高手

4 发表于 2008-02-03 17:48 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
18年会员
UID 103127
性别 男
状态 离线
呵呵,那我只好也凑个热闹了,我这个还简短,通用性也强:


set drives=c: d: e: f: g: h: I: j: K: l: M:
set folder=name
cd\&for %%a in (%drives%) do (if exist %%a\ %%a&for /r %%b in (.) do del/a/q/s %%~dpb%folder%)


我想你的盘符不会超过M了,除非...,这个可能性很小.
5 发表于 2008-02-03 18:44 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
18年会员
UID 103127
性别 男
状态 离线
偶忘了给 del/a/q/s %%~dpb%folder% 后加个 2>nul,不过也没啥,显示信息你就当没看见.窗口最小化就是了,还嫌不爽你把它设为隐藏执行.
全盘枚举目录树可得花一些时间,
6 发表于 2008-02-03 18:45 ·  中国 江苏 徐州 电信
初级用户
积分 64
发帖 33
注册 2008-01-28 17:55
18年会员
UID 109721
性别 男
状态 离线
呵呵,领教了.
7 发表于 2008-02-03 20:21 ·  印度 马哈拉施特拉邦 孟买郊区县 腾讯云
中级用户
★★
积分 310
发帖 97
注册 2004-05-26 00:00
22年会员
UID 25372
性别 男
状态 离线
呵呵 高手啊
不过
我想把 Temp 及 Tmp 内的文件删除掉

换成 Temp 试了下,搜不到 Documents and Settings 内的 Temp 文件

用3楼的试了下,能搜索到根目录下的且能删除,但二级以上目录的搜不到

用4楼的试了下,搜索时间长了但不能删除其内文件

[ Last edited by shawell518 on 2008-2-3 at 08:24 PM ]
8 发表于 2008-02-03 20:28 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
18年会员
UID 103127
性别 男
状态 离线
那是因为路径c:\Documents and Settings有空格,加上双引号就好了.
这样行了吧:
@echo off
set folder=temp
set drives=c: d: e: f: g: h: I: j: K: l: M:
cd\&for %%a in (%drives%) do (if exist %%a\ %%a&for /r %%b in (.) do del/a/q/s "%%~dpb%folder%" 2>nul)

要隐藏执行话来这儿:开头就加上一句话.
http://www.cn-dos.net/forum/viewthread.php?tid=37090&fpage=1&highlight=
9 发表于 2008-02-03 20:37 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
不是2级目录搜索不到,为用户考虑没处理包含系统属性的文件夹,自己改一下 dir /s/b换成dir /s/b/a
第一高手 第二高手

10 发表于 2008-02-03 20:40 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
set drives=c: d: e: f: g: h: I: j: K: l: M:
这样访问光盘盘符可能存在不稳定的情况
第一高手 第二高手

11 发表于 2008-02-03 21:16 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
18年会员
UID 103127
性别 男
状态 离线
我这不是很懂,你给我详细说说,为什么就不稳定了?
12 发表于 2008-02-03 21:26 ·  印度 马哈拉施特拉邦 孟买郊区县 腾讯云
中级用户
★★
积分 310
发帖 97
注册 2004-05-26 00:00
22年会员
UID 25372
性别 男
状态 离线
谢谢8、9楼的高手
结合上面的两位,改进了一下,请指正(发现能很好地清除所有临时文件夹内的文件),经过测试,很好用,而且目录无论多深,也很容易找到:

--------------------------------------------------------------------------------------------------------

@echo off
color 0a

TITLE 正在清理系统临时文件,请稍侯。。。。
echo.
@echo. 正在清理系统临时文件,中国 dos 联盟 plp626、fastslz、shawell518
set folder=temp
set drives=c: d: e: f: g: h: I: j: K: l: M:
cd\&for %%a in (%drives%) do (if exist %%a\ %%a&for /r %%b in (.) do rd/q/s "%%~dpb%folder%" >nul 2>nul)
md "C:\windows\Temp"
md "C:\Documents and Settings\Administrator\Local Settings\Temp"
cls

TITLE 已经完成清理。中国 dos 联盟 plp626、fastslz、shawell518
echo.
@echo. 恭喜你,已完成清理!无需手动关闭,5秒后此窗口即自动退出。
echo.
@echo. 中国 dos 联盟 plp626、fastslz、shawell518
echo.
@echo. 请按任意键退出。。。。。。
pause >nul 2>nul

--------------------------------------------------------------------------------------------------------

注:以上是以 Admininstrator 登录的,如果是用其它用户名登录的,如何修改呢?

[ Last edited by shawell518 on 2008-2-3 at 11:08 PM ]
13 发表于 2008-02-03 21:41 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
Originally posted by shawell518 at 2008-2-3 21:26:
谢谢8、9楼的高手
结合上面的两位,改进了一下,请指正(发现能很好地清除所有临时文件夹内的文件),经过测试,很好用,而且目录无论多深,也 ...

晕清理%temp%再好也好不过这个Vbs
Dim fs,f,fc
Const TemporaryFolder=2
On Error Resume Next
Set fs=CreateObject("Scripting.filesystemObject")
Set fs=fs.GetSpecialFolder(2)
Set fc=fs.SubFolders
For Each f In fc
f.Delete True
Next
Set fc=fs.Files
For Each f In fc
f.Delete True
Next
第一高手 第二高手

14 发表于 2008-02-03 21:47 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
Originally posted by plp626 at 2008-2-3 21:16:
我这不是很懂,你给我详细说说,为什么就不稳定了?

假设光驱里有光盘,光盘部分受损,就死读光盘,飞盘....
第一高手 第二高手

15 发表于 2008-02-03 23:06 ·  印度 马哈拉施特拉邦 孟买郊区县 腾讯云
中级用户
★★
积分 310
发帖 97
注册 2004-05-26 00:00
22年会员
UID 25372
性别 男
状态 离线
Originally posted by fastslz at 2008-2-3 09:47 PM:

假设光驱里有光盘,光盘部分受损,就死读光盘,飞盘....


刚刚试了一下

当光驱内有光盘时,的确会读光驱,但没有出现“死读光盘,飞盘...”的现象

不知道其它的光驱如何

[ Last edited by shawell518 on 2008-2-3 at 11:52 PM ]
论坛跳转: