Board logo

标题: [已解决]---cmd 如何搜索硬盘上“Temp”的文件夹 [打印本页]

作者: shawell518     时间: 2008-2-3 12:03    标题: [已解决]---cmd 如何搜索硬盘上“Temp”的文件夹
如何搜索全部硬盘上的名为“Temp”的文件夹,并全部删除里面的文件(不删除“Temp”文件夹?

谢谢

Last edited by shawell518 on 2008-2-6 at 08:02 PM ]

作者: plp626     时间: 2008-2-3 12:18
你都是老用户了,
for + if +del /a/q/s name

作者: fastslz     时间: 2008-2-3 14:53
@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

作者: plp626     时间: 2008-2-3 17:48
呵呵,那我只好也凑个热闹了,我这个还简短,通用性也强:


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了,除非...,这个可能性很小.

作者: plp626     时间: 2008-2-3 18:44
偶忘了给 del/a/q/s %%~dpb%folder% 后加个 2>nul,不过也没啥,显示信息你就当没看见.窗口最小化就是了,还嫌不爽你把它设为隐藏执行.
全盘枚举目录树可得花一些时间,

作者: Chinaderek     时间: 2008-2-3 18:45
呵呵,领教了.

作者: shawell518     时间: 2008-2-3 20:21
呵呵 高手啊
不过
我想把 Temp 及 Tmp 内的文件删除掉

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

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

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

Last edited by shawell518 on 2008-2-3 at 08:24 PM ]

作者: plp626     时间: 2008-2-3 20:28
那是因为路径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=

作者: fastslz     时间: 2008-2-3 20:37
不是2级目录搜索不到,为用户考虑没处理包含系统属性的文件夹,自己改一下 dir /s/b换成dir /s/b/a

作者: fastslz     时间: 2008-2-3 20:40
set drives=c: d: e: f: g: h: I: j: K: l: M:
这样访问光盘盘符可能存在不稳定的情况

作者: plp626     时间: 2008-2-3 21:16
我这不是很懂,你给我详细说说,为什么就不稳定了?

作者: shawell518     时间: 2008-2-3 21:26
谢谢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 ]

作者: fastslz     时间: 2008-2-3 21:41
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

作者: fastslz     时间: 2008-2-3 21:47
Originally posted by plp626 at 2008-2-3 21:16:
我这不是很懂,你给我详细说说,为什么就不稳定了?

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

作者: shawell518     时间: 2008-2-3 23:06
Originally posted by fastslz at 2008-2-3 09:47 PM:

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


刚刚试了一下

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

不知道其它的光驱如何

Last edited by shawell518 on 2008-2-3 at 11:52 PM ]

作者: plp626     时间: 2008-2-10 09:02
@echo off
::删除指定盘内指定类型文件,指定文件夹内的所有文件
::plp626 from cn-dos.net at 7:49 2008-2-10
set del=temp rubbish test *.tmp *.log
set drives=c: d:
cd\&for %%a in (%drives%) do (
if exist %%a\ %%a
for /r %%c in (%del%) do (
for /r %%b in (.) do del/a/q/s "%%~dpb%%~nxc" 2>nul
)
)
pause

作者: z640919a     时间: 2008-3-17 16:31
我这尝试结果只有8楼是对的,我的temp在r盘.
@echo off
set folder=temp
set drives=c: d: r:
cd\&for %%a in (%drives%) do (if exist %%a\ %%a&for /r %%b in (.) do rd/q/s "%%~dpb%folder%" 2>nul)

我把temp里的文件夹也删了.

Last edited by z640919a on 2008-3-17 at 04:32 PM ]