2016-09-25 160 views
2

我想通过运行下面的批处理文件来删除所有临时文件。但不幸的是,我收到“访问被拒绝”。错误。我不确定根本原因或如何最小化这一点。“访问被拒绝。”尝试使用批处理文件删除TEMP文件时出错

@echo off 
cd %temp% 
for /d %%D in (*) do rd /s /q "%%D" 
del /f /q * 

此外还建议一种方法来删除所有的Internet临时文件(IE)。

+2

是很常见的一些临时文件由当前运行的进程被锁定。最好的做法是跳过这些并删除其他所有内容。 IE内置了删除自己临时文件的功能。强烈建议您使用更安全,更高性能的浏览器,例如Firefox或Chrome。 – jpmc26

+0

@ jpmc26:我可以手动删除这些文件,但是当我运行批处理文件时,它说“访问被拒绝”。所以我不认为这些文件被任何正在运行的进程占用。 –

回答

3

你这样做的方式是非常危险的:

cd没有/D改变目录,但不驱动。因此,如果您从驱动器D:运行此脚本,它将更改驱动器C的当前目录,然后继续删除D:驱动器中的所有内容。

如果幸运的话,您无权访问其他驱动器。如果你不是你失去了所有的文件。

你会需要cd /D %TEMP%使之安全,但要避免改变当前目录中它甚至更好:

@echo off 

for /d %%D in (%TEMP%\*) do rd /s /q "%%D" 
del /f /q %TEMP%\* 

当然,临时清理可能会失败,因为一些文件正在使用的正在运行的程序。在这种情况下,只需重新启动并再次运行脚本。

我只是跑这个剧本,现在有3个迪尔斯和我的临时目录的10个文件(有很多的旧文件之前)

若要删除临时IE文件,它是略有不同的目录是隐藏的如此我们列出隐藏迪尔斯有特殊dir命令(FOR命令不会看到隐藏的目录)

@echo off 

set IETEMP=%LOCALAPPDATA%\Microsoft\Windows\INetCache 
for /F %%D in ('dir /AHD /B %IETEMP%') do rd /s /q "%IETEMP%\%%D" 
del /f /q %IETEMP%\* 
+0

C:\ Users \ \ AppData \ Local \ Temp \ hsperfdata_Appy \ 3832 - 访问被拒绝。 C:\ Users \ \ AppData \ Local \ Temp \ FXSAPIDebugLogFile.txt 该进程无法访问文件,因为它正在被另一个进程使用。 –

+0

当然,临时清理可能会失败,因为某些文件正在通过运行程序来使用。在这种情况下,只需重新启动并再次运行脚本。 –

相关问题