注意:这个问题最初是在 2009 年提出的,当时 powershell 不支持 &&
运算符。
2019 年,根据 Jay 的回答,微软在 Powershell 7 中添加了对 &&
和 ||
的支持。
https://stackoverflow.com/a/564092/234
原始问题
&&
是出了名的难以在 Google 搜索上搜索,但我找到的最好的是 this article其中表示使用 -and
。
不幸的是,它没有提供任何更多信息,而且我无法找出我应该用 -and
做什么(同样,这是众所周知的很难搜索的事情)。
我尝试使用它的上下文是“执行cmd1,如果成功,则执行cmd2”,基本上是这样的:
csc /t:exe /out:a.exe SomeFile.cs && a.exe
<小时/>
如果您只想在一行上运行多个命令,并且不关心第一个命令是否失败,则可以使用 ;
对于我的大多数目的来说,这没问题。
例如:kill -n myapp; ./myapp.exe
.
最佳答案
在CMD中,'&&'的意思是“执行命令1,如果成功则执行命令2”。我已经将它用于以下用途:
build && run_tests
在 PowerShell 中,您可以做的最接近的事情是:
(build) -and (run_tests)
它具有相同的逻辑,但命令的输出文本丢失。不过,也许这对你来说已经足够好了。
如果您在脚本中执行此操作,最好将语句分开,如下所示:
build
if ($?) {
run_tests
}
2019/11/27:&&
运算符现已可用于 PowerShell 7 Preview 5+ :
PS > echo "Hello!" && echo "World!"
Hello!
World!
关于syntax - 我可以让 "&&"或 "-and"在 PowerShell 中工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/563600/