我维护一个运行 Windows 作业的 CICD 基础设施。管道可以运行任意代码,包括自定义 .bat/.cmd 脚本。
我发现批处理在许多情况下无法正确传播退出代码,因此开发人员经常看到他们的作业成功,即使此类脚本的 bash 等效项会失败(正确)。所以我想禁止在 CICD 管道中执行批处理。如果作业无论如何都要执行批处理脚本,我希望失败并显示一条错误消息,说明它被禁止。
问题是您永远不知道何时以及哪个进程将执行批处理脚本 - 它可能是make
自定义 python 脚本。有没有办法禁止在给定powershell
终端会话或cmd
终端会话中执行 .bat/.cmd 脚本?
也许有办法卸载批处理解释器,或者修补它?