我有代码将已排序的哈希表输出到屏幕:
$h.getenumerator() | sort value -descending
看起来像这样:
Name Value
---- -----
10.10.10.10 69566308 151
10.10.10.11 69566308 143
10.10.10.12 69566308 112
10.10.10.13 69566308 99
10.10.10.14 69566308 71
10.10.10.15 69566308 70
但我想将其输出到文件中。
当我尝试使用
输出到文件时$h.getenumerator() | sort value -descending | out-string | Add-Content D:\Script\iis_stats.log
或
$h.getenumerator() | sort value -descending | Add-Content D:\Script\iis_stats.log
我得到的是" System.Collections.DictionaryEntry"在D:\Script\iis_stats.log
。
我该如何解决?
答案 0 :(得分:1)
如果你想要它以相同的格式显示在屏幕上(折叠在管道上以便于阅读):
$h.getenumerator() |
Sort-Object value -descending |
Format-Table |
Out-String |
Add-Content D:\Script\iis_stats.log
答案 1 :(得分:1)
如果你做了类似的事情,你会在屏幕上得到类似的输出:
$h.GetEnumerator() | sort value -Descending | ForEach-Object{
$_.GetType().FullName
}
对于每个条目,您会看到System.Collections.DictionaryEntry
,因为它没有正确的字符串等效项。
然后你应该做mjolinor建议的事情。 PowerShell会自动将| Out-Default
命令附加到控制台,以便以一种视觉上令人愉悦的方式显示。当您将输出发送到Add-Content
时,无法进行美化。