我在发帖之前搜索了这个答案,所以我提前道歉,如果它在这里,我找不到它!
我正在使用Powershell从我的Exchange服务器中提取一堆数据,并将其放入哈希表中。
我没有问题格式化此哈希表以满足我自己的报告需求,但现在我想将这些数据放入Splunk(我知道Splunk Exchange App,这是针对不同的需求)。
所以Splunk可以在没有任何预处理工作的情况下提取数据,我需要它看起来如下所示。
timestamp key=value,key=value,key=value,key=value
timestamp key=value,key=value,key=value,key=value
timestamp key=value,key=value,key=value,key=value
timestamp key=value,key=value,key=value,key=value
timestamp key=value,key=value,key=value,key=value
答案 0 :(得分:3)
试试这个:
$ht = @{one=1; two=2; three=3}
$KeysAndValues = $ht.GetEnumerator() | Foreach-Object { '{0}={1}' -f $_.Key,$_.Value }
'{0:MM/dd/yyyy} {1}' -f (Get-Date),($KeysAndValues -join ',')
答案 1 :(得分:0)
让我们使用StringBuilder构建输出字符串。
$sb=new-object Text.StringBuilder
# Append timestamp, here from system time
[void]$sb.Append("{0} " -f [datetime]::now.tostring("u"))
# Populate sample hashtable with some data
$ht = @{"foo"="oof"; "bar"="rab"; "baz"="zab"; "qux"="xug" }
# Enumerate the hashtable by sorted names just for fun
$ht.GetEnumerator() | sort name | % {
# Append keys and values to the stringbuilder
[void]$sb.Append($("{0}={1}," -f $_.Name, $_.Value))
}
# Get rid of the tailing comma
[void]$sb.Remove($sb.Length-1, 1)
# Print output
$sb.ToString()