windows – 如何使批处理文件自行删除?

前端之家收集整理的这篇文章主要介绍了windows – 如何使批处理文件自行删除?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否有可能使批处理文件删除其自身?

我试图让它执行另一个文件删除它,但这没有工作,任何人都知道我该怎么做。我正在使用的批处理文件被提升。我的操作系统是Windows 7 32位。

npocmaka的答案有效,但会生成以下错误消息:“找不到批处理文件”。如果控制台窗口在脚本终止时关闭,则不会出现问题,因为消息会快速闪烁,没有人会看到它。但是如果控制台在脚本终止后保持打开状态是非常不希望的。

在没有错误消息的情况下删除文件的技巧是在脚本终止后再次删除文件。这可以使用START / B轻松完成以启动删除过程。删除过程需要时间来启动和执行,所以父脚本有可能在删除发生之前彻底终止。

start /b "" cmd /c del "%~f0"&exit /b

您可以简单地使用CALLed子例程,如果您担心SHIFT会破坏%0值。

call :deleteSelf&exit /b
:deleteSelf
start /b "" cmd /c del "%~f0"&exit /b

更新2015-07-16

我发现另一个非常光滑的方式来使批处理脚本自身删除而不产生任何错误消息。这种技术取决于新发现的GOTO(某些俄罗斯人发现)的行为,描述于http://www.dostips.com/forum/viewtopic.php?f=3&t=6491

总而言之,(GOTO)2> NUL的行为类似于EXIT / B,除了它允许在调用者的上下文中执行连接的命令!

所以你需要的是

(goto) 2>nul & del "%~f0"
原文链接:https://www.f2er.com/windows/372968.html

猜你在找的Windows相关文章