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

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

I think可以将其合并到一行代码中,但在我的PowerShell研究中,将命令行值传递给下一个操作的多个管道或分号的使用不起作用:

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

有没有一种方法可以将这些语句组合成一行,或者至少使用值Get-Service来执行这些操作,而不必将其称为2x?

推荐答案

Stop-Service是使用该对象的cmdlet之一.因此,您必须向它提供-PassThruswitch ,以允许对象沿管道继续:

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

至于您的最后一个示例,semicolon(;)在PowerShell中是statement termination的平均值,因此您实际上是在执行两个命令,其中Remove-Service没有任何可引用的内容.

Csharp相关问答推荐

使用封装的Span Range.Enumerator时引发IndexOutOfRangeResponse

C#编译器会优化表达体成员的重新判断吗?

在C#c/await中,延迟长度是否会影响控制返回调用者?

将多个enum值传递给MAUI中的转换器参数的XML语法是什么?

C#中的包版本控制

Dapper是否可以自动扩展类成员

如何在Reflection. Emit中使用具有运行时定义的类型参数的泛型类型

当我使用NET6作为目标框架时,为什么DotNet使用NET8作为MS包?

dotnet集合中内部数组的局部变量副本的用途是什么?'

Docker Container中的HttpRequest后地址不可用

System.Text.Json .NET 8多形态语法化

在swagger示例中添加默认数组列表

为什么AggregateException的Catch块不足以处理取消?

使用ExtractIconEx(或其他方式)提取最大的可用图标

异步任务调用程序集

GODOT 4向C#中的字符串参数发送信号以等待

在C#.NET项目中启动时,如何等待提升的PowerShell进程退出?

在等待OnGetAsync时打开Razor Page显示微调器

当`JToken?`为空时?

最小API定义的Swagger标头参数