PowerShell 中 & 符號與雙 & 符號的替換

PowerShell 中 & 符號與雙 & 符號的替換

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

壞的

來源 :https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_pipeline_chain_operators?view=powershell-7.3

相關內容