我需要停止并删除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?
2条答案
按热度按时间r6hnlfcb1#
Stop-Service
是使用对象的小程序之一。因此,您必须为它提供-PassThru
开关,以允许对象继续沿着管道运行:字符串
至于你的最后一个例子,在PowerShell中,* tagon *(
;
)是一种 * 语句终止 * 的方法,所以你实际上是在执行两个命令,而Remove-Service
没有任何引用。8aqjt8rx2#
一种稍微不同的方法,在Powershell 7中,您可以使用
&&
操作符在一行上执行多个命令,就像经典的cmd一样。字符串