将简单的哈希表转换为HTML

时间:2015-07-29 22:05:37

标签: powershell

我正在尝试编写一个包含当前正在运行的进程名称的html页面 我试过这个:

 $htmlFile="c:\HTMLFILE.HTML"

 $HashTBL=@{label="PROCESS NAMES";Expression={$_.name}}

 $HtmData=Get-Process |select -Verbose $HashTBL
 $HtmData | ConvertTo-Html -Title "Running processes" |Out-File $htmlFile

但是我得到了这个页面: 正如您所看到的,列名称缺失并显示为外卡,

*

AcroRd32 
AcroRd32 
ApMsgFwd 
ApntEx 
Apoint 
armsvc 
audiodg 
CCleaner64 
chrome 
chrome 
chrome 
chrome 
chrome 
chrome 
chrome 
chrome 
chrome 
chrome 

如果我选择多个工作正常的属性:

 $htmlFile="c:\HTMLFILE.HTML"

 $HashTBL=@{label="PROCESS NAMES";Expression={$_.name}}   

 $HtmData=Get-Process |select -Verbose $HashTBL,id
 $HtmData | ConvertTo-Html -Title "Running processes" |Out-File $htmlFile

生成正确的列标题(只添加了ID属性)
但仍想使用单个属性作为哈希表

2 个答案:

答案 0 :(得分:1)

您可以像这样指定convertTo-html的属性:

$htmlFile="c:\HTMLFILE.HTML"
$HashTBL=@{label="PROCESS NAMES";Expression={$_.name}}
$HtmData=Get-Process |select -Verbose $HashTBL
$HtmData | ConvertTo-Html -Title "Running processes" -Property 'PROCESS NAMES' |Out-File $htmlFile

答案 1 :(得分:1)

为什么不在select-object中格式化属性?如果你想要做的只是重新命名列,你可以使用哈希表在Select-Object中做到这一点。

$htmlFile="c:\HTMLFILE.HTML"
get-process | Select-Object @{n='PROCESS NAMES';e={$_.Name}} | Convertto-html -Title "Running processes" | Out-File $htmlfile