提取/查看 ScriptMethod 的值
Extracting / viewing the Value of a ScriptMethod
我是 powershell 的新手,正在深入挖掘,边学边做。
具体来说,我想知道如何查看与重写方法或添加的 ScriptMethod 相关的代码。
cmdlet:Get-Service returns 一个具有 ScriptMethod MemberType 的对象 ToString
PS> Get-Service | Get-Member -MemberType ScriptMethod
TypeName: System.ServiceProcess.ServiceController
Name MemberType Definition
---- ---------- ----------
ToString ScriptMethod System.Object ToString();
我知道您可以使用 Add-Member cmdlet 来覆盖底层的 .NET ToString(),例如:
$gps = Get-Process s* | Select-Object -First 3 | Add-Member -MemberType ScriptMethod -Name ToString -Value {$this.Name} -PassThru -Force
注意:Get-Process 使用默认的 .NET ToString(),但可以使用 Add-Member cmdlet 覆盖。
但是我如何从实现 [=31= 的对象中提取 -Value {some_code} ]ScriptMethodMemberType?
我已经搜索了这个问题的答案,但无济于事。
有人知道吗?
干杯。
使用Script
属性或get_Script
方法:
(Get-Service | Select-Object -First 1).ToString | Get-Member -Force
TypeName: System.Management.Automation.PSScriptMethod
Name MemberType Definition
---- ---------- ----------
...
get_Script Method scriptblock get_Script()
...
Script Property scriptblock Script {get;}
...
示例:
(Get-Service | Select-Object -First 1).ToString.Script
结果:
$this.ServiceName
您也可以通过隐藏psobject
属性:
$gps.psobject.Methods|?{$_.MemberType-eq'ScriptMethod'}|select -exp Script
我是 powershell 的新手,正在深入挖掘,边学边做。
具体来说,我想知道如何查看与重写方法或添加的 ScriptMethod 相关的代码。
cmdlet:Get-Service returns 一个具有 ScriptMethod MemberType 的对象 ToString
PS> Get-Service | Get-Member -MemberType ScriptMethod
TypeName: System.ServiceProcess.ServiceController
Name MemberType Definition
---- ---------- ----------
ToString ScriptMethod System.Object ToString();
我知道您可以使用 Add-Member cmdlet 来覆盖底层的 .NET ToString(),例如:
$gps = Get-Process s* | Select-Object -First 3 | Add-Member -MemberType ScriptMethod -Name ToString -Value {$this.Name} -PassThru -Force
注意:Get-Process 使用默认的 .NET ToString(),但可以使用 Add-Member cmdlet 覆盖。
但是我如何从实现 [=31= 的对象中提取 -Value {some_code} ]ScriptMethodMemberType?
我已经搜索了这个问题的答案,但无济于事。
有人知道吗?
干杯。
使用Script
属性或get_Script
方法:
(Get-Service | Select-Object -First 1).ToString | Get-Member -Force
TypeName: System.Management.Automation.PSScriptMethod
Name MemberType Definition
---- ---------- ----------
...
get_Script Method scriptblock get_Script()
...
Script Property scriptblock Script {get;}
...
示例:
(Get-Service | Select-Object -First 1).ToString.Script
结果:
$this.ServiceName
您也可以通过隐藏psobject
属性:
$gps.psobject.Methods|?{$_.MemberType-eq'ScriptMethod'}|select -exp Script