gpt4 book ai didi

powershell - 如何动态设置PowerShell变量的类型?

转载 作者:行者123 更新时间:2023-12-04 02:12:16 24 4
gpt4 key购买 nike

是否可以从字符串获取System.Type,然后将其应用于变量?

以下是我尝试转换以使其更安全的函数(即不涉及调用字符串):

Function ParseLine($Type, $VariableName, $Value){
Invoke-Expression "[$Type] `$$VariableName = $Value"
}

我查看了 New-VariableSet-Variable,但是定义中没有与类型设置相关的参数。

我期望看起来像下面的东西,但是找不到参数 Type或等效参数:
Function ParseLine($Type, $VariableName, $Value){
New-Variable -Name $VariableName -Value $Value -Type ([type] $Type)
}

上下文:我正在尝试创建一个简单的解析器定义,如下所示:
$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

我不确定您对变量的意图,但是如果要在函数完成后保留该变量,则需要在父作用域中进行设置。

关于powershell - 如何动态设置PowerShell变量的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23042428/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com