我可以让“&&”或“-and”在PowerShell中运作吗?
我可以让“&&”或“-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日
在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!