如何防止外部脚本使用break语句终止脚本

2024-03-08

我正在调用一个外部 .ps1 文件,其中包含break某些错误情况下的语句。我想以某种方式捕获这种情况,允许任何外部打印的消息正常显示,并继续执行脚本中的后续语句。如果外部脚本有throw,这可以很好地使用try/catch。即使trap在我的文件中,我无法阻止脚本终止。

为了回答这个问题,假设外部 .ps1 文件的源代码(由其他人编写并在运行时拉入)无法更改。

我想要的是否可能,或者脚本的作者只是没有考虑在外部调用时表现得很好?

编辑:提供以下示例。

在 badscript.ps1 中:

if((Get-Date).DayOfWeek -ne "Yesterday"){
    Write-Warning "Sorry, you can only run this script yesterday."
    break
}

在 myscript.ps1 中:

.\badscript.ps1
Write-Host "It is today."

我想要实现的结果是看到来自 badscript.ps1 的警告,并让它继续执行 myscript.ps1 中的进一步语句。我理解为什么break语句会导致“就是今天”。永远不会被打印,但是我想找到一种解决方法,因为我不是 badscript.ps1 的作者。

编辑:将标题从“powershell tr​​y/catch 不捕获中断语句”更新为“如何防止外部脚本使用中断语句终止脚本”。提到 try/catch 实际上更多的是关于实际问题的一个失败的解决方案,新标题更好地反映了这一点。


从我的脚本中运行单独的 PowerShell 进程来调用外部文件最终成为一个足以满足我的需求的解决方案:powershell -File .\badscript.ps1将执行 badscript.ps1 的内容,直到break语句包括任何 Write-Host 或 Write-Warning,然后让我自己的脚本继续。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何防止外部脚本使用break语句终止脚本 的相关文章

随机推荐

  • 自定义 Clipper 贝塞尔曲线 Flutter

    我目前无法绘制贝塞尔曲线 The output I have right now is The output that I need is 我应该在此处添加什么作为贝塞尔值来获得曲线 自定义剪辑器的代码片段是 class OnBoardin
  • 链接到电子邮件附件

    您好 我正在发送电子邮件附件 使用 php 并想向我向其发送电子邮件的人指出有附件 我想通过在电子邮件的 html 正文中显示一个链接来实现此目的 因此他们所需要做的就是单击该链接 系统将尝试打开 查看附件 有谁知道这是否可能 如果是这样
  • 如何在 Tkinter 中通过一个“绑定”绑定多个小部件?

    我想知道如何用一个 绑定 绑定多个小部件 例如 我有三个按钮 我想在悬停后更改它们的颜色 from Tkinter import def SetColor event event widget config bg red return de
  • 检索客户端的 PC 名称? (Windows 身份验证)

    我有一个在内部网络上运行的 ASP net 应用程序 实际上它在 Sharepoint 2007 上运行 我只是好奇 我可以以某种方式检索客户端正在使用的 PC 的名称吗 如果有帮助的话 我可以访问 Active Directory 问题是
  • Safari 上的 CSS 翻译问题

    我正在努力将我制作的 Gif 转换为 CSS 动画 在 Chrome Firefox Opera 上一切正常 但在 Safari 上却出现问题 当我最初加载页面时 图像会忽略翻译并位于下方 但是一旦我单击 Safari 选项卡并返回 页面就
  • 将列列表作为向量传递给 data.table 的 CJ

    我有以下代码 main cols lt c num let dt lt data table num 1 5 let letters 1 5 dt new dt lt dt CJ num num let let unique TRUE on
  • 如何防止 XNA 组件在离屏时绘制?

    我正在 XNA 中制作 2d 游戏 使用可绘制游戏组件时 哪一个性能更好 1 当组件不在屏幕上时 将其从组件列表中删除 当组件在屏幕上时 将其添加 2 当其离屏时 不运行其绘制函数 通过使用 awake 布尔字段和 if 语句围绕绘图函数中
  • 测量服务器请求后 JSF 视图的呈现时间

    我想测量 JSF 应用程序的渲染时间 由于我的权力原因 应用程序无法填充日志 因此 我的问题是 有什么方法可以在使用任何浏览器执行包括后端 服务器 调用的特定操作后测量应用程序的渲染时间 到目前为止 在使用 Chrome 开发者工具后 我发
  • 如何从QVariant获取原始python数据

    这几天正在学习python和Qt 所以请考虑这将是一个新手问题 但我被困在这里 import sys from PyQt4 QtCore import data1 string data2 QVariant data1 data3 data
  • DirectUI 的真相是什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在开发一个 Windows 桌面应用程序 它需要一个很棒的 UI 我现在使用Visual Studio和MFC 后来听说DirectU
  • 如何获取 MySQL 数据库的最后访问(和/或写入)时间?

    如何查明 MySQL 数据库上次读取或写入的时间 您甚至可以对每张桌子进行检查吗 SELECT UPDATE TIME FROM INFORMATION SCHEMA TABLES WHERE TABLE SCHEMA dbname AND
  • 托管和非托管 C++/MFC 可以混合在一个 dll 中吗?

    以前 我们有 MFC VC6 VB6 和 C 应用程序中的软件 需要调用用 C 和 MFC 编写的相同引擎 该引擎需要 C 来提高速度 当时我们决定使用 COM 作为接口 因为所有三个都可以使用它 并且在编组等方面的问题最少 我们的 MFC
  • 在 SQL Server 中存储图像?

    我制作了一个小型演示网站 并在其上将图像存储在 sql 服务器上的图像列中 我有几个问题是 这是一个坏主意吗 当我的网站增长时 它会影响性能吗 另一种方法是将图像存储在光盘上 并且仅将图像的引用存储在数据库中 这想必是很多人都曾遇到过的共同
  • 使用 docker-compose 将 Gitlab CI/CD 转至 Digital Ocean 以实现多个存储库

    目前我在 Gitlab 中有一个项目 repo 它是一个角度应用程序 我使用 Gitlab CI CD 来构建 测试 发布和部署 发布将构建一个新的 docker 镜像 将其推送到 Gitlab 注册表 然后将其部署到我的 Digital
  • 有人对以这种方式使用黑板模式有想法吗?

    有人对 实用程序员 第 165 页中的 Blackboard 概念有什么想法吗 我想要几个彼此独立的小子系统 DLL 和 EXE 有一些程序集将被所有 EXE 使用 这些程序集几乎都使用相同的数据库 Blackboard 类型模式不是使用接
  • 确定对不正确的 .NET Framework 版本的间接依赖的来源

    我想知道如何确定此构建错误的来源 Warning 4 The primary reference MyNamespace MyProject could not be resolved because it has an indirect
  • 仅当值不为空时 PHP/MYSQL 更新

    我正在构建一个表单来更新多列数据 这段代码对于我的目的来说已经部分成功 剩下要做的唯一一件事就是包含 如果 IS NOT NULL 更新查询 我不知道该怎么做 换句话说 我只希望在 POST 值不为空时执行 UPDATE
  • Magento 网站突然出现“未收到数据”错误代码:ERR_EMPTY_RESPONSE

    我们在电子商务网站上运行 Magento 最近几天似乎有些非常重要的页面根本无法加载 网站上的大部分页面加载良好 但是如果用户 登录 并且他们尝试访问购物车结帐页面 迄今为止最重要的页面 他们会收到下图所示的非常令人讨厌的消息 据我所知 最
  • 从 WebJob 中停止网站

    有什么方法可以阻止 WebJob 访问 Azure 网站吗 我有一个使用 Ghost 在 Node 上运行的 Azure 网站 我正在尝试安排 Ghost 数据库文件的备份 最好在站点未运行时进行备份 我可以通过使用 Kudu PowerS
  • 如何防止外部脚本使用break语句终止脚本

    我正在调用一个外部 ps1 文件 其中包含break某些错误情况下的语句 我想以某种方式捕获这种情况 允许任何外部打印的消息正常显示 并继续执行脚本中的后续语句 如果外部脚本有throw 这可以很好地使用try catch 即使trap在我