gpt4 book ai didi

bash - Bash 的 && 和 || 的 PowerShell 等价物是什么?运营商?

转载 作者:行者123 更新时间:2023-11-29 08:42:35 25 4
gpt4 key购买 nike

在 Bash 中,我可以轻松地做类似的事情

command1 && command2 || command3

这意味着运行 command1,如果 command1 成功运行 command2,如果 command1 运行 command3 失败。

PowerShell 中的等价物是什么?

最佳答案

Bash 必须做的是在传递给逻辑运算符时将命令的退出代码隐式转换为 bool 值。 PowerShell 不会这样做 - 但可以创建一个函数来包装命令并创建相同的行为:

> function Get-ExitBoolean($cmd) { & $cmd | Out-Null; $? }

( $? is a bool containing the success of the last exit code )

给定两个批处理文件:
#pass.cmd
exit


#fail.cmd
exit /b 200

...行为可以被测试:
> if (Get-ExitBoolean .\pass.cmd) { write pass } else { write fail }
pass
> if (Get-ExitBoolean .\fail.cmd) { write pass } else { write fail }
fail

逻辑运算符的计算方式应与 Bash 中的相同。首先,设置别名:
> Set-Alias geb Get-ExitBoolean

测试:
> (geb .\pass.cmd) -and (geb .\fail.cmd)
False
> (geb .\fail.cmd) -and (geb .\pass.cmd)
False
> (geb .\pass.cmd) -and (geb .\pass.cmd)
True
> (geb .\pass.cmd) -or (geb .\fail.cmd)
True

关于bash - Bash 的 && 和 || 的 PowerShell 等价物是什么?运营商?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2416662/

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