替换 Powershell 中 Select 语句的一部分
Replace part of Select Statement in Powershell
我正在使用 Powershell 从 DHCP 服务器获取一些信息。
我正在使用这个命令来获取我需要的信息。
Get-DhcpServerv4Lease -ScopeId 10.132.56.0 | select IPAddress,ClientId,HostName | sort hostname | format-table
结果如我所料:
| IPAddress | ClientId | HostName |
|---------------|-------------------|-----------| | 10.132.56.121 |
40-83-de-2b-66-27 | | | 10.132.56.101 | 40-83-de-2b-64-fb |
| | 10.132.56.76 | 4c-c9-5e-6d-f2-30 | [Signage] |
我想从 ClientId 中删除“-”。
我试过 -replace "*",""
我试过了
Get-DhcpServerv4Lease -ScopeId 10.132.56.0 | select IPAddress,$_.ClientId -replace "-","" ,HostName | sort hostname | format-table
*Select-Object : A parameter cannot be found that matches parameter name 'replace'.
At line:1 char:75
+ Get-DhcpServerv4Lease -ScopeId 10.132.56.0 | select IPAddress,$_.ClientId -repla ...
+ ~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Select-Object], ParameterBindingException
+ FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand$_.ChildID.replace("-","")*
但是我得到了不同的错误。
我希望我可以在一行中完成而不存储数组变量。
有什么帮助吗?
也许这是不可能的,但我对此表示怀疑。
您需要将 -replace
操作包含在 属性 表达式中:
... Select IPAddress,{$_.ClientId -replace '-'},...
如果您希望生成的 属性 保留名称 ClientId
,请将 属性 表达式包装在哈希表中(这有时称为 计算属性):
... Select IPAddress,@{Name='ClientId';Expression={$_.ClientId -replace '-'}},...
我正在使用 Powershell 从 DHCP 服务器获取一些信息。 我正在使用这个命令来获取我需要的信息。
Get-DhcpServerv4Lease -ScopeId 10.132.56.0 | select IPAddress,ClientId,HostName | sort hostname | format-table
结果如我所料:
| IPAddress | ClientId | HostName | |---------------|-------------------|-----------| | 10.132.56.121 | 40-83-de-2b-66-27 | | | 10.132.56.101 | 40-83-de-2b-64-fb | | | 10.132.56.76 | 4c-c9-5e-6d-f2-30 | [Signage] |
我想从 ClientId 中删除“-”。
我试过 -replace "*","" 我试过了
Get-DhcpServerv4Lease -ScopeId 10.132.56.0 | select IPAddress,$_.ClientId -replace "-","" ,HostName | sort hostname | format-table
*Select-Object : A parameter cannot be found that matches parameter name 'replace'.
At line:1 char:75
+ Get-DhcpServerv4Lease -ScopeId 10.132.56.0 | select IPAddress,$_.ClientId -repla ...
+ ~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Select-Object], ParameterBindingException
+ FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand$_.ChildID.replace("-","")*
但是我得到了不同的错误。
我希望我可以在一行中完成而不存储数组变量。
有什么帮助吗? 也许这是不可能的,但我对此表示怀疑。
您需要将 -replace
操作包含在 属性 表达式中:
... Select IPAddress,{$_.ClientId -replace '-'},...
如果您希望生成的 属性 保留名称 ClientId
,请将 属性 表达式包装在哈希表中(这有时称为 计算属性):
... Select IPAddress,@{Name='ClientId';Expression={$_.ClientId -replace '-'}},...