是否可以从字符串中获取 System.Type,然后将其应用于变量?
以下是我尝试转换以使其更安全的函数(即不涉及调用字符串):
Function ParseLine($Type, $VariableName, $Value){
Invoke-Expression "[$Type] `$$VariableName = $Value"
}
我在看New-Variable
and Set-Variable
,但定义中没有与类型设置相关的参数。
我期望如下所示的内容,但我找不到参数Type
或同等学历:
Function ParseLine($Type, $VariableName, $Value){
New-Variable -Name $VariableName -Value $Value -Type ([type] $Type)
}
Context:我正在尝试创建一个简单的解析器定义,如下所示:
$ResponseLogFormat = New-InputFormat {
ParseLine -Type int -VariableName RecordLength
RepeatedSection -RepeatCount $RecordLength {
ParseLine string +ComputerName
ParseLine double +AverageResponse
}
}
$ResponseLogFormat.Parse( $FilePath )
您可以使用以下命令将变量转换为特定类型-as
操作员:
Function ParseLine($Type, $VariableName, $Value){
Set-Variable $VariableName -Scope 1 -Value ($Value -as ($Type -as [type]))
}
那将使用-as
创建一个类型$Type
字符串,然后用它来强制转换$Value
.
我不确定您对变量的意图,但如果您想在函数完成后保留它,则需要在父作用域中设置它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)