$MyInvocation
中有什么东西可以做到这一点吗?或者某种方式来提取它?我想要函数调用中用于参数的原始文本。
答案 0 :(得分:0)
C:\script.ps1
:
function Say-MyName {
$MyInvocation | fl *
}
Say-MyName
选择你的武器:
MyCommand : Say-MyName
BoundParameters : {}
UnboundArguments : {}
ScriptLineNumber : 5
OffsetInLine : 1
HistoryId : 6
ScriptName : C:\script.ps1
Line : Say-MyName
PositionMessage : At C:\script.ps1:5 char:1
+ Say-MyName
+ ~~~~~~~~~~
PSScriptRoot : C:\
PSCommandPath : C:\script.ps1
InvocationName : Say-MyName
PipelineLength : 1
PipelinePosition : 1
ExpectingInput : False
CommandOrigin : Internal
DisplayScriptPosition :
答案 1 :(得分:0)
使用$myinvocation.line
或$myinvocation.position
时需要注意一些事项。如果您跨多行将调用拆分为命令(使用反引号),则.position
和.line
将不会显示完整命令。使用splatting $args
/ $myinvocation.unboundarguments
(并且不要为函数定义任何参数)或$ input(如果函数获取管道输入)更安全,具体取决于您想要的内容使用命令行。但是,如果您需要保留空格,则使用.line
或.position
是您唯一的选择。