首页 > 解决方案 > 从 powershell 输出中删除文本

问题描述

我有这个命令:

Get-WmiObject win32_service |
  ? {$_.Name -like '*Front*'} |
    ? {$_.PathName -like '*logdir*'} |
      select Name, PathName

它的输出是这样的:

Frontapp (Frontapp1) D:\Application\Frontapp\Frontapp.exe -service  -dbType mssql -ORBSvcConf D:\Frontapp83\Frontapp\svc.conf -connections 5 -connectionPoolSize 64 -logdir D:\Frontapp\log1

Frontapp (Frontapp0) D:\Frontapp83\Frontapp\Frontapp.exe -service  -dbType ora -ORBSvcConf D:\Frontapp83\Frontapp\svc.conf -connections 35 -connectionPoolSize 64 -logdir D:\Frontapp\log0

如何从输出中删除信息,只是为了获取 -logdir 路径。

需要的输出:

Frontapp (Frontapp1) D:\Frontapp\log1

Frontapp (Frontapp0) D:\Frontapp\log0

标签: windowspowershellcmdletget-wmiobject

解决方案


使用计算属性

Get-WmiObject win32_service |
  ? { $_.Name -like '*Front*' -and $_.PathName -like '*logdir*' } |
    select Name, @{ n='LogDir'; e={ $_.PathName -replace '^.+logdir\s+' } }

推荐阅读