以下是我的PowerShell脚本。它生成一个格式良好的HTML表。我想把一个列加粗(Full%column)。我不能为我的生活想办法。
我尝试在不同的地方插入粗体标签并尝试使用替换的方法,但由于列中的数字发生变化,我无法想到这样做的方法。
$symmid = 1555
$command1 = symfast -sid $symmid list -association -demand
$command2 = symcfg -sid $symmid list -thin -pool -detail -gb
$basedir = "C:\ts\Scripts"
$timestamp = Get-Date -Format ddMMyyyy
$CSSFile = "$basedir\csstemplate.css"
$css = get-content $CSSFile
$command1 > $basedir\archive_vp\archive_$timestamp.txt
$command2 > $basedir\archive_pool\archive_$timestamp.txt
$regex = '(?ms)P O O L S(.+?)\r\n\s*\r\n'
$command2 = $command2 -join "`r`n"
$command2 = [regex]::Matches($command2,$regex) | foreach {$_.groups[1].value}
$command2 = $command2 -split "`r`n" | select -Skip 5
$command2Format = $command2 | % {
$column = $_ -split ' +'
$hash = [ordered]@{
'Pool Name' = $column[0]
'Flags PTECSL' = $column[1]
'Dev Config' = $column[2]
'Total GBs' = $column[3]
'Usable GBs' = $column[4]
'Free GBs' = $column[5]
'Used GBs' = $column[6]
'Full (%)' = $column[7]
'Subs (%)' = $column[8]
'Comp (%)' = $column[9]
'Shared GBs' = $column[10]
}
New-Object -Type PSCustomObject -Property $hash
} | ConvertTo-Html -Head $a
function get-css
{
foreach($line in $css)
{
$style += $line
}
return $style
}
$style = "<style>"
$style = get-css
$style += "</style>"
$report = "<html><head>$style</head><body>$command2Format</body></html>"
$report | Out-File $basedir\test.html
Invoke-Expression $basedir\test.html
输出:
答案 0 :(得分:2)
你能指望CSS3吗?如果是这样,您可以使用:nth-Child()
选择器。详情请见http://www.w3schools.com/cssref/sel_nth-child.asp
答案 1 :(得分:1)
你应该能够按照这个基本的例子来得到你想要的东西
$a = @"
<style>
TD:nth-child(1){font-weight: bold}
</style>
"@
Get-ChildItem c:\temp -Directory | Select Name,lastwritetime | ConvertTo-Html -Head $a | Set-Content c:\temp\file.html
ii c:\temp\file.html
因此,nth-child(1)
定义第一列数据的文字加粗。你应该能够在第7列完成同样的事情。
是的,就像Tim Ferrill所说,你需要浏览器支持,但这不应该是一个很高的订单。