在 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'
壞的