将powershell的OrderedDictionary的所有值转换成字符串行并打印到日志文件
Convert all values of OrderedDictionary of the powershell to string line and print to the log file
我在将 PowerShell 的 OrderedDictionary 的值转换为字符串行时遇到了一些问题。我有以下哈希 table [OrderedDictionary]:
我尝试将值数据输出到字符串:
for ($i = 0; $i -lt $DataResult.Count; $i++) {
$DataResult["$i"].Values |
ForEach-Object {
Write-Output $_
}
}
但是不行,你能帮帮我吗
鉴于您的代码示例,我认为您有一组 [Ordered]
字典?如果是这样,您应该能够很容易地展开这些值:
#This is just demo data for my testing:
$Dictionaries = @(
[Ordered]@{
P1 = 'Something'
P2 = 'SomethingElse'
}
[Ordered]@{
P1 = 'Another'
P2 = 'AnotherAnother'
}
)
# Unroll the values:
$Values = $Dictionaries.Values
如果忽略演示数据,它实际上只有 1 行。 $Values
将是 [Object[]]
类型,其元素是其原始字符串类型。如果需要,您可以重新转换为字符串数组:
$Values = [String[]]$values
或者直接用展开指定:
# Unroll the values:
$Values = [String[]]$Dictionaries.Values
或类型约束变量:
# Unroll the values:
[String[]]$Values = $$Dictionaries.Values
注意:此转换也会将元素值转换为字符串。我将在所需的基础上进行。
我还要指出,您真的不需要 Write-Output
任何地方。首先,这已经隐含在正常的 PowerShell 操作中。其次,您不能通过管道传输传统的 For
循环(尽管您可以将其输出分配给一个变量)。无论如何,如果您的意图只是继续将其沿管道输送,您可以从上述任何示例中删除 $Values
,PowerShell 将隐式地和本机地执行此操作。
我在将 PowerShell 的 OrderedDictionary 的值转换为字符串行时遇到了一些问题。我有以下哈希 table [OrderedDictionary]:
我尝试将值数据输出到字符串:
for ($i = 0; $i -lt $DataResult.Count; $i++) {
$DataResult["$i"].Values |
ForEach-Object {
Write-Output $_
}
}
但是不行,你能帮帮我吗
鉴于您的代码示例,我认为您有一组 [Ordered]
字典?如果是这样,您应该能够很容易地展开这些值:
#This is just demo data for my testing:
$Dictionaries = @(
[Ordered]@{
P1 = 'Something'
P2 = 'SomethingElse'
}
[Ordered]@{
P1 = 'Another'
P2 = 'AnotherAnother'
}
)
# Unroll the values:
$Values = $Dictionaries.Values
如果忽略演示数据,它实际上只有 1 行。 $Values
将是 [Object[]]
类型,其元素是其原始字符串类型。如果需要,您可以重新转换为字符串数组:
$Values = [String[]]$values
或者直接用展开指定:
# Unroll the values:
$Values = [String[]]$Dictionaries.Values
或类型约束变量:
# Unroll the values:
[String[]]$Values = $$Dictionaries.Values
注意:此转换也会将元素值转换为字符串。我将在所需的基础上进行。
我还要指出,您真的不需要 Write-Output
任何地方。首先,这已经隐含在正常的 PowerShell 操作中。其次,您不能通过管道传输传统的 For
循环(尽管您可以将其输出分配给一个变量)。无论如何,如果您的意图只是继续将其沿管道输送,您可以从上述任何示例中删除 $Values
,PowerShell 将隐式地和本机地执行此操作。