gpt4 book ai didi

windows - 如何在成功时运行多个命令

转载 作者:可可西里 更新时间:2023-11-01 14:13:50 26 4
gpt4 key购买 nike

在 bash 和 CMD 中,您可以执行 rm not-exists && ls 将多个命令串在一起,每个命令只有在前面的命令成功时才会有条件地运行。

在 powershell 中你可以做 rm not-exists; ls,但 ls 将始终运行,即使 rm 失败也是如此。

我如何轻松地复制 bash 和 CMD 的功能(在一行中)?

最佳答案

默认情况下,Powershell 中的大多数错误都是“非终止”的,也就是说,它们不会导致您的脚本在遇到时停止执行。这就是为什么 ls 即使在 rm 命令出错后也会执行的原因。

不过,您可以通过多种方式更改此行为。您可以通过 $errorActionPreference 变量全局更改它(例如 $errorActionPreference = 'Stop'),或者通过设置 -ErrorAction 仅针对特定命令更改它 参数,这是所有 cmdlet 通用的。这是最适合您的方法。

# setting ErrorAction to Stop will cause all errors to be "Terminating"
# i.e. execution will halt if an error is encountered
rm 'not-exists' -ErrorAction Stop; ls

或者,使用一些常见的速记

rm 'not-exists' -ea 1; ls

-ErrorAction参数说明帮助。输入 Get-Help about_CommonParameters

关于windows - 如何在成功时运行多个命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15101705/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com