当我发出get-service命令时,我会得到整个服务列表。
我只想列出一项具体的服务。
所讨论的服务正在get-service的输出中列出
Running nginx nginx但是,如果我试图使用以下任何一种方法:
PS C:\Users\x> get-service | Select-String "nginx"
PS C:\Users\x> get-service | Select-String -Pattern "nginx"
PS C:\Users\x> get-service | Select-String -Pattern 'nginx'我没有输出。
那么,我如何在Powershell中"grep“呢?
发布于 2021-06-30 07:19:57
这样就行了
Get-Service -Name "nginx"发布于 2021-06-30 07:47:54
需要注意的是,PowerShell cmdlet总是输出对象,而不是简单的字符串--即使输出看起来是字符串,它实际上也是一个System.String对象。可以使用Get成员检查命令的输出类型(以及相关的属性和方法)。
Get-Service | Get-Member
TypeName: System.ServiceProcess.ServiceController
Name MemberType Definition
---- ---------- ----------
Name AliasProperty Name = ServiceName
RequiredServices AliasProperty RequiredServices = ServicesDependedOn
Disposed Event System.EventHandler Disposed(System.Object, System.EventArgs)
Close Method void Close()
Continue Method void Continue()
...正如其他人所提到的,Get-Service (和其他cmdlet)为您所要做的工作内置了过滤功能,但是一个更通用的选择是何地对象,它更灵活(虽然通常比较慢)。
Get-Service | Where-Object {$_.Name -like 's*' -and $_.Status -eq 'Running'}
Status Name DisplayName
------ ---- -----------
Running SamSs Security Accounts Manager
Running SCardSvr Smart Card
Running Schedule Task Scheduler
Running SecurityHealthS... Windows Security Service
Running SENS System Event Notification Service
...https://stackoverflow.com/questions/68189988
复制相似问题