gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 12:03:45 24 4
gpt4 key购买 nike

是否可以使批处理文件自行删除?

我试图让它执行另一个文件来删除它,但这没有用。

有人知道我该怎么做吗?

我正在使用的批处理文件已提升。我的操作系统是 Windows 7 32 位。

最佳答案

npocmaka 的答案有效,但它会生成以下错误消息:“找不到批处理文件。”如果控制台窗口在以下时间关闭,这不是问题脚本终止,因为消息会闪过如此之快,没有人会看到它。但是如果脚本终止后控制台仍然打开,这是非常不可取的。

在没有错误消息的情况下删除文件的技巧是在脚本终止后让另一个隐藏进程删除文件。这可以使用 START/B 启动删除过程轻松完成。删除过程的启动和执行需要时间,因此父脚本有机会在删除发生之前干净地终止。

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

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

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"

返回的 ERRORLEVEL 将为 0,因为 DEL 是最后一个命令,它总是清除 ERRORLEVEL。

如果您需要控制 ERRORLEVEL,那么类似

(goto) 2>nul & del "%~f0" & cmd /c exit /b 10

关于windows - 如何使批处理文件自行删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20329355/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com