![PowerShell 中“&”符号和双“&”符号的替换](https://linux22.com/image/1326521/PowerShell%20%E4%B8%AD%E2%80%9C%26%E2%80%9D%E7%AC%A6%E5%8F%B7%E5%92%8C%E5%8F%8C%E2%80%9C%26%E2%80%9D%E7%AC%A6%E5%8F%B7%E7%9A%84%E6%9B%BF%E6%8D%A2.png)
在 Windows 的原生 CMD 处理器中,您可以使用&
将命令串在一起,以便一个命令在另一个命令之后立即运行。&&
只有当第一个命令完成且没有错误时,A 才会运行第二个命令。
这与管道命令以及|
第一个命令的输出不同不是发送到第二个命令,命令只是简单地一个接一个地运行,并且每个命令的输出都被发送到其通常的位置。
但是,当我尝试在 PowerShell 中使用&
或时,出现错误。PowerShell 中是否有类似的功能,或者此功能是否已被弃用?&&
答案1
PowerShell 中的运算&
符只是;
或分号。
PowerShell 中的运算符&&
必须作为if
语句运行。
Command ; if($?) {Command}
例子:
tsc ; if($?) {node dist/run.js}
答案2
尝试一下这个函数,其使用方式大致相同:
function aa() {
if($?) {
$command = [string]::join(' ', $args[1..99])
& $args[0] $command
}
}
现在&&
可以用 来代替; aa
,虽然还不完美,但却更加简洁。
cls && build
变成
cls; aa build
答案3
更新:现在可以使用 Powershell 7 本地执行此操作
Write-Output 'First' && Write-Output 'Second'
第一
秒
但是如果第一个命令失败(这里注意Write-Error
):
Write-Error 'Bad' && Write-Output 'Second'
坏的