【发布时间】:2023-12-31 04:01:01
【问题描述】:
我想出了以下代码,它开始最小化,等待 5 秒(对于慢速 PC)后删除临时文件并应自动关闭,但由于某种原因,自动关闭不起作用,.bat 文件保持最小化。
我尝试使用 exit 命令,但它的效果为 0,因为 goto :EOF 阻止它执行,但如果我将删除 goto :EOF 脚本不会删除临时文件
if not DEFINED IS_MINIMIZED set IS_MINIMIZED=1 && start "" /min "%~dpnx0" %* && exit
PING localhost -n 5 >NUL
@echo off
setlocal
call :Clear_Folder %SystemRoot%\TEMP
pushd C:\Users
for /d %%k in (*) do if exist "%%k\AppData\Local\Temp" call :Clear_Folder "%%k\AppData\Local\Temp"
popd
endlocal
goto :EOF
:Clear_Folder
pushd "%~1"
for /d %%i in (*) do rd /s /q "%%i"
del /f /q *
popd
goto :EOF
exit
我期待修复最后一步自动关闭,所有其他功能都可以正常工作,脚本开始最小化,它会删除临时文件,但在所有这些之后它不会自行关闭并保持最小化。
【问题讨论】:
-
我想我会提到用户可以选择他们的临时文件目录的位置,所以使用特定路径并不是最可靠的想法。
-
我还要补充一点,您不应该像这样删除临时目录的所有内容。我建议,虽然现在已弃用,但请改用内置的磁盘清理 (
CleanMgr.exe)。 -
为什么不使用变量
%TEMP%?
标签: batch-file minimize temp