输出变量时带状头

时间:2012-03-12 21:01:52

标签: html powershell csv

基于我在这里发布的另一个问题,我能够使这个脚本的大部分工作,但我不知道如何更改选择对象的格式。谷歌一直没有帮助。

$head = @'
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Current Conditions</title>
    </head>

    <body style="background-color:#EEEEEE">
    <h3 style="margin:0;padding-bottom:3px">Current Conditions at 
'@

$1 = @'
</h3>
    <p style="margin:0;padding-bottom:0px"><b>Dewpoint: </b>
'@

$2 = @'
</p>
    <p style="margin:0;padding-bottom:0px"><b>Temperature: </b>
'@

$3 = @'
</p>
    <p style="margin:0;padding-bottom:3px"><b>Humidity: </b>
'@

$end = @'
</p>
    </body>
</html>
'@

$info = import-csv 1-pastweek.csv
$time = $info | select -last 1 Time
$temp = $info | select -last 1 Temp
$humid = $info | select -last 1 Humid
$dewpt = $info | select -last 1 Dewpt

$head + $time + $1 + $dewpt + $2 + $temp + $3 + $humid + $end | out-file -encoding "UTF8" current.html

这确实有效,但html输出的格式包含CSV中的标题信息,我看不到如何绕过它。

Current Conditions at @{TIME=03/12/2012 15:32:22}

Dewpoint: @{DEWPT=62.7}

Temperature: @{TEMP=71.9}

Humidity: @{HUMID=74.4}

有关如何让@ {HEADER}消失的任何想法。我只想要实际的数据。

2 个答案:

答案 0 :(得分:2)

对于您尝试的内容,您只需添加-expandproperty来获取实际值而不是具有该属性的对象。

例如:

$time = $info | select -last 1 -expand Time

您可以直接使用$time,而不是$time.TIME

此外,如果您正在做的就是这样,并且您将使用$time.TIME等,那么您可以做到:

$info = import-csv 1-pastweek.cs | select -last 1

并使用$info.Time等。

答案 1 :(得分:1)

您发布的所有内容都是正确的,您使用哪些代码来组合这些字符串?

看起来您可能正在执行以下操作:

$head + $time + $1 + $dewpt + $2 + $temp + $3 + $humid + $end

如果要指定中间对象的一部分,请执行以下操作:

$head + $time.TIME + $1 + $dewpt.DEWPT + $2 + $temp.TEMP + $3 + $humid.HUMID + $end

此语法假定您使用哈希表(@{})来保存对象。