“访问被拒绝。”尝试使用批处理文件删除TEMP文件时出错

时间:2016-09-25 07:38:20

标签: batch-file

我试图通过运行以下批处理文件来删除所有临时文件。但不幸的是,我收到“访问被拒绝”。错误。我不确定根本原因或如何最大限度地减少这种情况。

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

还建议删除所有互联网临时文件(IE)的方法。

1 个答案:

答案 0 :(得分: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%\*
相关问题