Powershell 无法返回正确的退出代码

2024-03-02

使用以下命令执行 Powershell 脚本(2.0 中)时-File命令行开关,并在 Param 中显式定义输入参数,退出代码始终为“0”(永不失败),而不是正确返回定义或预期的错误代码。
使用显式参数定义和-Command开关,但是出于无关目的,我需要在脚本中保留 -File 开关。

任何协助解决方法(这不涉及删除显式参数定义)将非常有帮助。

Powershell“无法返回正确的退出代码”:

exit1.ps1:显式定义参数的调用脚本。 Errorlevel 始终为 0,即使脚本的某些部分无情地失败也是如此。

param(
    [Parameter(mandatory=$true)][string]$arg1,
    [Parameter(mandatory=$true)][string]$arg2,
    [Parameter(mandatory=$true)][string]$arg3
);
exit 1;

Output:

C:\temp\testnant>powershell -noprofile -nologo -noninteractive -executionpolicy Bypass -file .\exit1.ps1 "one" "two" "three"

C:\temp\testnant>echo %errorlevel%
0




现在,让我们在修改 param 函数以使其不那么明确时尝试同样的操作:

退出1LooseParam.ps1:

param(
    $arg1,
    $arg2,
    $arg3
);
exit 1;

输出(具有三个参数):

C:\temp\testnant>powershell -noprofile -nologo -noninteractive -executionpolicy Bypass -file .\Exit1looseParam.ps1 "one" "two" "three"

C:\temp\testnant>echo %errorlevel%
1




看来,当您显式定义输入参数时,Powershell 似乎由于某种原因“失去了理智”,并且无法返回正确的退出代码。

有谁有解决方法或能够解释为什么会发生这种情况?


嗯,这很奇怪,我预计exit 1在这两种情况下都可以工作。至少你可以同时使用它:

[Environment]::Exit(1)

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

Powershell 无法返回正确的退出代码 的相关文章

  • 将所有脚本参数复制到另一个变量

    我需要复制所有脚本参数并将它们传递给另一个脚本 我尝试这样做 args printargs sh args echo printargs sh args 但在这种情况下 如果我使用包含空格的参数调用我的父脚本 例如 script sh ar
  • 如何在 PowerShell 中使用参数执行外部程序?

    我读过这个答案堆栈溢出 https stackoverflow com questions 1673967 how to run exe in powershell with parameters with spaces and quote
  • Connect-AzAccount 无提示

    我正在尝试使用以下方式登录 Azure 门户 Connect AzAccount 此代码要求我输入我不想要的提示 我们可以使用一些简单的配置脚本自动登录吗 正如Joy所说 您可以通过凭据使用用户帐户登录 但不会出现任何提示 请确保您的帐户未
  • 将数组中的所有值作为参数传递给函数

    我有一个值数组 a b c d 我需要将它们作为参数传递给函数 window myFunction a b c d 如果我可以将数组 对象传递到函数中 那么这会更容易 但这些函数是由其他人编写的或已经存在 我无法更改它们 它们需要作为单独的
  • 在Powershell中,如何设置$?不将该值发送到管道?

    PS gt gci C lt
  • 如何从计划任务中删除触发器

    我使用 PowerShell 中的任务计划程序 cmdlet 为 Perfmon 数据收集器集的计划任务配置触发器 我使用以下命令来修改计划任务并在服务器启动时启动数据收集器集 trigger New ScheduledTaskTrigge
  • 使用 PowerShell 检查 AD 中是否存在组

    我想为该组创建代码来检查该组是否存在 但是 我无法开始工作 因为它成功地将用户和组的部分成员仅添加到一个组中 而不是其他组 因为我设法在活动目录中创建一个组并从 csv 中读取 这是我的代码和结果 似乎在成功添加用户并添加组成员后我总是收到
  • powershell 优雅/干净地关闭 Internet Explorer

    我想干净 优雅地关闭互联网浏览器 taskkill 会关闭它 但是当重新打开它时 它会询问您是否要重新打开上一个会话 尝试 CloseMainWindow 方法 通过向其主窗口发送关闭消息来关闭具有用户界面的进程 Get Process i
  • 从 C# 调用时无法识别 Powershell 命令

    这是这个的延续Question https stackoverflow com questions 66280000 powershell object returns null 66280138 noredirect 1 comment1
  • 在 PowerShell 中,将两个表合并为一个表的最佳方法是什么?

    我对 PowerShell 相当陌生 想知道是否有人知道解决以下示例问题的更好方法 我有一组从 IP 地址到主机名的映射 这表示活动 DHCP 租约的列表 PS H gt leases IP Name 192 168 1 1 Apple 1
  • 向控制器发送参数

    我懂了
  • PowerShell Group-Object 不再将对象拆分为固定大小的集合

    我在一个脚本中写了这个 我认为该脚本运行良好 但似乎已停止工作 testList object 1 object 2 object 3 object 4 object 5 counter 0 maxSize 2 groupedList te
  • 正确配置JDK环境变量后仍然找不到java命令

    我在 Windows 虚拟机启动时安装 JDK 使用 cloudinit 用户数据将 PowerShell 脚本传输到 Windows 计算机 然后运行该脚本来安装 JDK softwares Get ItemProperty HKLM S
  • Javascript 函数指针,以参数作为函数中的参数

    不确定标题的措辞是否正确 或者是否有更好的表达方式 但我认为还可以 无论如何 到目前为止我了解以下内容 a b a b c foo 其中 foo 是在其他地方定义的函数 不接受任何参数 只会导致函数 a b 使用上述参数运行 然后可以在函数
  • npm run cmd 失败,而命令行上的 cmd 有效

    In my HTTP状态检查项目 https github com guyellis http status check 如果我跑node modules bin jshint I get node modules bin jshint t
  • 一行 PowerShell 脚本

    我创建了这个基本的单行 PowerShell 脚本 如果我运行以下命令 该脚本就会执行adAD 的 cmdlet 然后是查询的其余部分 但是尝试将它们一起运行时 它似乎只加载了 cmdlet 而没有执行 cmd 的其余部分 powershe
  • 如何扩展和重写集合类中的 Add

    背景 我在 PowerShell 中有一个具有 4 个属性的数据对象 其中 3 个是字符串 第 4 个是哈希表 我想安排一个新类型 将其定义为该数据对象的集合 在这个集合类中 我希望强制执行一种特定的格式 这将使我在模块中其他地方的代码更加
  • 与 Write-Host 相比,Write-Output 的使用非常不可靠

    有人指出一个问题 如果我希望命令按顺序操作 建议使用 Write Output 而不是 Write Host 因为 Write Host 不会将输出放在管道上 而其他命令却这样做 这意味着 Write Host 输出可以发生在管道上的其他命
  • Powershell XMLDocument保存为无BOM的UTF-8

    我构建了一个 System Xml XmlDocument 类型的 XML 对象 scheme gettype IsPublic IsSerial Name BaseType True False XmlDocument System Xm
  • Powershell日期类型无法找到

    我正在尝试使用PowerShell连接virustotal API 代码来自virustotal网站 我得到 无法找到类型 System Security Cryptography ProtectedData 错误信息 代码如下 funct

随机推荐

  • EditText 输入过滤器导致重复字母

    我一直像这样限制对我的编辑文本的输入 InputFilter filter new InputFilter public CharSequence filter CharSequence source int start int end S
  • Hibernate 代理上的 Bean 验证失败?预期行为?

    我在用着 hibernate core 4 0 1 Final hibernate validator 4 2 0 Final 我有一个延迟加载实体 NotNull OneToOne fetch FetchType LAZY optiona
  • 处理 EditText 内可绘制对象上的单击事件

    我在文本右侧添加了一个图像EditText小部件 使用以下 XML
  • 如何创建一个不由轮询驱动的聊天服务器?

    我创建了一个由客户端轮询驱动的简单聊天服务器 客户端每隔几秒发送一次数据请求 并收到任何新消息以及有关其对等方是否仍处于连接状态的信息 由于客户端在移动平台 iPhone 上运行 我一直在寻找摆脱轮询的方法 因为轮询会很快耗尽电池 我读到可
  • 使用 Indy 测量网络流量

    我使用 TIdTCPCmdServer 来处理与客户端应用程序的所有通信 我希望我的服务器记录所有类型的内容 包括网络流量 有没有简单或聪明的方法来查看 TCPCmdServer 实际接收和发送了多少字节 我只能想到这样的代码 ASende
  • 如何让 JLabels 从下一行开始

    JPanel pMeasure new JPanel JLabel economy new JLabel Economy JLabel regularity new JLabel Regularity pMeasure add econom
  • 如何在docker容器崩溃时自动监控并重启?

    我目前正在运行两个虚拟服务器官方鬼魂形象 https registry hub docker com ghost and nginx proxy图片 这是我的构建 docker run d p 86 2368 name home e VIR
  • 碰撞解决:二次探测与单独链接

    好的 我一直在对哈希表和不同的冲突解决问题进行一些实验 我试图找出哪个更有效地进行查找 即使用单独的链接或二次探测来解决冲突的哈希表 我的结果表明 即使对于较小的负载因子 例如 0 4 或 0 2 单独链接也比二次探测更快 是这种情况还是我
  • 支持Android材质设计

    我们正在重新设计我们的 Android 应用程序 考虑到即将推出的 Android L 平台及其材质风格 出现了一个问题 支持旧设备的方式是什么 这种新设计在 4 x 设备上可以接受吗 根据Android Material Design 兼
  • iOS SwiftUI 搜索栏和 REST-API

    我正在尝试使用 SwiftUI 并希望使用搜索字符串从我的 REST API 获取更新 但是 我现在不确定如何将这两个组件组合在一起 我希望你有一个想法 这是我的代码 struct ContentView View State privat
  • 如何配置 Ruby Mechanize 代理以通过 Charles Web 代理工作?

    我正在使用 Ruby Mechanize 编写一个 自动填写表格 应用程序 几乎可以用了 我可以用精彩Charles http www charlesproxy com Web 代理来查看服务器和我的 Firefox 浏览器之间的交换 现在
  • 语言环境 JS 的货币代码

    在这里幽默一下 但我有一个简单的任务 即输入数字并将其格式化为货币代码 IE var value 1000 value toLocaleString en AU style currency currency AUD minimumFrac
  • 在heroku python应用程序上使用什么端口

    所以我创建了 2 个 iOS 应用程序 一个发送坐标 一个接收坐标 和一个 python 服务器 其中一个应用程序将 GPS 坐标发送到托管在 heroku 上的 python 服务器 然后 服务器会将收到的 GPS 坐标发送到其他 iOS
  • 如何将 Bot Framework 对话框拆分到不同的文件中

    我试图让我的机器人代码更易于管理 并将一些属于不同文件的对话框放在一起 这里有一个关于 javascript 的古老的类似问题 https github com Microsoft BotBuilder issues 1457 但我正在努力
  • 如何在反应中保存文件输入值

    假设一个页面包含多阶段表单 在表单的第一阶段包含名称的输入字段 在第二阶段包含文件的输入 onChange设置名称和文件的状态值 但是当我们像第一阶段到第二阶段一样来回移动时阶段和第二阶段 我们可以保存输入类型名称的值 但如何保存输入类型文
  • 在Java中:如何让线程监视另一个线程?

    抱歉 如果问题很简单 我是初学者 我必须创建计算某些内容的线程 而第一个线程工作时 另一个线程必须测量第一个线程是否在指定时间内计算函数 如果没有 它必须抛出异常 否则返回答案 我会采用 java util concurrent 组件 简单
  • 在GNU Emacs中,如何按模式设置背景颜色?

    在 GNU Emacs 中 我发现我可以在不同模式下为前景类型设置不同的面孔 例如 custom set faces message header to t foreground LightGoldenrod1 weight bold 如何
  • 在詹金斯上安排每两周一次的工作

    我想在 jenkin 上安排每两周一次的工作 它应该每隔一周星期一运行一次 我无法弄清楚 cron 表达式 我做了一些研究 基本上可以归结为 3 个答案 快速回答 你不能 复杂答案1 您可以在单独的行中手动输入每隔一个星期日的条目 但是当年
  • 在Python中旋转位

    出于好奇 我想看看将对象的 id 转换为其哈希值的操作在字符串域中是什么样子 而不是使用通常的按位操作 例如 class A pass def my hash a bits format id a 064b rot4 bits 4 bits
  • Powershell 无法返回正确的退出代码

    使用以下命令执行 Powershell 脚本 2 0 中 时 File命令行开关 并在 Param 中显式定义输入参数 退出代码始终为 0 永不失败 而不是正确返回定义或预期的错误代码 使用显式参数定义和 Command开关 但是出于无关目