gpt4 book ai didi

batch-file - 批处理文件是否支持导出陷阱?

转载 作者:行者123 更新时间:2023-12-03 11:23:26 24 4
gpt4 key购买 nike

Windows .bat脚本是否具有退出陷阱之类的功能,该功能将允许注册始终需要运行的清除操作?

我对使用Powershell或其他shell的任何解决方案都不感兴趣(我已经在目标系统上安装了Python,因此,如果无法在批处理文件中完成此操作,我将尝试对subprocess.Popen进行大量包装。 ..最后)。

最佳答案

不,没有异常(exception),也没有正式的方法注册退出例程以在终止时自动运行。

但是,如果您不需要在脚本终止后继续进行环境更改,则可以关闭该窗口。您可以在新的CMD session 中运行大多数脚本,然后可以在父级具有清理例程,只要控制台窗口未终止,清除例程将始终在终止时运行。如果内部脚本正常终止或由于Ctrl-C终止,或由于致命语法错误等而终止,则控件将返回到 shell 。

这是一个简单的演示:

@echo off
if "%~1" equ ":main" (
shift /1
goto main
)
cmd /d /c "%~f0" :main %*
echo Cleanup actions go here
exit /b

:main
echo Main actions go here
exit /b

更新-被黑的异常(exception)

此后,我仅使用 native 批处理命令就开发了一种有效的异常hack-请参阅 Does Windows batch support exception handling?

可以在代码的任何级别上引发异常,并且异常冒泡直到catch块处理该异常为止。代码无法独自识别错误-您的代码必须明确抛出每个异常。它还无法响应,致命语法错误或关闭的控制台。但是,如果这些限制是可以接受的,那么这是安装清除代码的一种非常有效的方法。

关于batch-file - 批处理文件是否支持导出陷阱?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28889166/

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