如何将多个Windows Service PowerShell命令合并组合到一个语句中?

vshtjzan  于 2023-11-18  发布在  Shell
关注(0)|答案(2)|浏览(259)

我需要停止并删除Windows服务,以下PowerShell命令可以成功工作:

Get-Service "$ServiceName" | Stop-Service 
Get-Service "$ServiceName" | Remove-Service

字符串
我 * 认为 * 有可能将其合并组合到一行代码中,但在我的PowerShell研究中,多个管道将commandlet值传递到下一个操作,或者使用一个pipeline不起作用:

Get-Service "$ServiceName" | Stop-Service | Remove-Service  # Does not work
Get-Service "$ServiceName" | Stop-Service; Remove-Service # Does not work


有没有一种方法可以将这些语句合并合并到一行中,或者至少使用Get-Service的值来执行这些操作,而不必调用它2x?

r6hnlfcb

r6hnlfcb1#

Stop-Service是使用对象的小程序之一。因此,您必须为它提供-PassThru开关,以允许对象继续沿着管道运行:

Get-Service "$ServiceName" | 
    Stop-Service -PassThru | 
    Remove-Service

字符串
至于你的最后一个例子,在PowerShell中,* tagon *(;)是一种 * 语句终止 * 的方法,所以你实际上是在执行两个命令,而Remove-Service没有任何引用。

8aqjt8rx

8aqjt8rx2#

一种稍微不同的方法,在Powershell 7中,您可以使用&&操作符在一行上执行多个命令,就像经典的cmd一样。

Stop-Service $Service && Remove-Service $Service

字符串

相关问题