我试图删除
C:\Users\%USERPROFILE%\AppData\Local\Temp
它显示错误:
文件名、目录名或卷标语法不正确。
这是代码:
@Echo off
del /s /q "C:\Windows\Temp\*.*"
del /s /q "C:\Windows\Prefetch\*.*"
del /s /q "C:\Users\%USERPROFILE%\AppData\Local\Temp\*.*"
for /d %%p in ("C:\Windows\Prefetch\*.*") do rmdir "%%p" /s /q
for /d %%p in ("C:\Windows\Temp\*.*") do rmdir "%%p" /s /q
for /d %%p in ("C:\Users\%USERPROFILE%\AppData\Local\Temp\*.*") do rmdir "%%p" /s /q
ipconfig /flushdns
pause
这是运行批处理文件的输出:
The filename, directory name, or volume label syntax is incorrect.
Windows IP Configuration
Successfully flushed the DNS Resolver Cache.
Press any key to continue . . .
使用此代码解决方案非常简单:
@echo off
setlocal EnableExtensions DisableDelayedExpansion
%SystemRoot%\System32\reg.exe QUERY "HKLM\System\CurrentControlSet\Control\Session Manager" /V PendingFileRenameOperations >nul 2>nul && goto NoDelInfo
pushd "%SystemRoot%\Temp" 2>nul && ( rd /Q /S "%SystemRoot%\Temp" 2>nul & popd )
pushd "%SystemRoot%\Prefetch" 2>nul && ( rd /Q /S "%SystemRoot%\Prefetch" 2>nul & popd )
pushd "%TEMP%" 2>nul && ( rd /Q /S "%TEMP%" 2>nul & popd )
%SystemRoot%\System32\ipconfig.exe /flushdns
goto EndBatch
:NoDelInfo
echo There are pending file rename operations.
echo/
echo Please first restart Windows and then run "%~nx0" once again.
echo/
:EndBatch
endlocal
pause
有关清除三个文件夹的三个命令行的完整说明,请参阅:
如何在Windows的命令提示符下删除特定目录下的文件/子文件夹?
在 Windows 下次启动时当前注册的待处理文件/文件夹重命名操作中,永远不应清除临时文件的目录,以完成安装或卸载,可能使用当前存储在临时文件的两个目录之一中的文件。
另请参阅有关预定义 Windows 环境变量 的维基百科文章,这些变量在命令提示符窗口中运行
set
时显示其值。
一般来说,最好以管理员身份运行Windows的磁盘清理工具,因为它可以删除更多不再需要的文件作为该批处理文件。