我可以让“&&”或“-and”在PowerShell中运作吗?

14 浏览
0 Comments

我可以让“&&”或“-and”在PowerShell中运作吗?

注意: 这个问题最初是在2009年提出的,当时 PowerShell 还不支持 && 运算符。根据 Jay 的回答,2019年时微软在 PowerShell 7中加入了对 &&|| 的支持。 https://stackoverflow.com/a/564092/234


原问题

在谷歌搜索中要查找 && 是出了名的困难,但我找到了最好的一个是 这篇文章,说要使用 -and

不幸的是,它没有提供更多的信息,我也找不到该如何使用 -and(同样是一个出了名的难搜的东西)。

我试图在这个上下文中使用它,“执行 cmd1,如果成功,则执行 cmd2”,基本上是这样的:

csc /t:exe /out:a.exe SomeFile.cs && a.exe


如果你只想在一行上运行多个命令,并且你不介意第一个命令失败或者成功,你可以使用 ;。对于我的大多数目的来说这是可以的。

例如: kill -n myapp; ./myapp.exe

admin 更改状态以发布 2023年5月19日
0
0 Comments

&&|| 已经在实现列表中(仍然是)但并没有成为下一个最有用的东西添加的理由是我们有 -AND-OR

如果您认为这很重要,请在 Connect 上提交建议,我们将考虑在 V3 中实现。

0
0 Comments

在CMD中,“&&”表示“执行命令1,如果成功,则执行命令2”。我曾用它来做一些事情,比如:

build && run_tests

在PowerShell中,你可以做最接近的事情是:

(build) -and (run_tests)

它有相同的逻辑,但是命令的输出文本丢失了。也许对你来说已经足够了。如果你在脚本中这样做,你可能最好分开语句,像这样:

build
if ($?) {
    run_tests
}

2019/11/27: 现在可以在PowerShell 7预览版5+中使用“&&”运算符:

PS > echo "Hello!" && echo "World!"
Hello!
World!

0