加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

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

发布时间:2020-12-13 21:13:55 所属栏目:Windows 来源:网络整理
导读:是否有可能使批处理文件删除其自身? 我试图让它执行另一个文件删除它,但这没有工作,任何人都知道我该怎么做。我正在使用的批处理文件被提升。我的操作系统是Windows 7 32位。 npocmaka的答案有效,但会生成以下错误消息:“找不到批处理文件”。如果控制
是否有可能使批处理文件删除其自身?

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读