syntax - 我可以让 "&&"或 "-and"在 PowerShell 中工作吗?

标签 syntax powershell

注意:这个问题最初是在 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/

相关文章:

远程执行时 PowerShell 脚本失败

c - MS VS 2008 和 C99

oop - 为什么协议(protocol)的关联类型在 Swift 中不使用泛型语法?

regex - Powershell将正则表达式值保留在变量中,然后构建字符串

.net - 在 Powershell 中使用 xml.document 保留多行属性和缩进

powershell - 如何像 Windows 资源管理器一样按文件名排序?

Python:在迭代之间更改代码

php - Aptana 3 和 PHP 5.4 新的数组格式

mysql - 触发语法错误

powershell - 将 WMI 创建日期转换为格式表