-1

这个问题有两部分:最终我试图从文件描述和原始文件名中打印出数据。第一个可能很简单的问题是我如何让它们在同一条线上?我正在使用PS G:\SysinternalsSuite> $values=@("filedescription", "originalfilename");foreach($V in $Values){(get-command g:\*\*\a*.exe).fileversioninfo.($v)} Windows Assessment and Deployment Kit - Windows 10 adksetup.exe两条线,而不是一条。我可以稍后编辑它,但是...

下一个问题是尝试将此信息输出到文件:我(get-command g:\*\*\a*.exe).fileversioninfo.filedescription用来返回 exe 文件文件夹的美化名称(例如,我正在使用 SysInternalsSuite)结果:

PS G:\SysinternalsSuite> (get-command g:\*\*\a*.exe).fileversioninfo.filedescription
Windows Assessment and Deployment Kit - Windows 10

工作得很好......然后一切都错了!我的下一个想法是将这些值放入 HTML 文件中,所以我这样做了:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>HTML TABLE</title>
</head><body>
<table>
<colgroup><col/></colgroup>
<tr><th>*</th></tr>
<tr><td>50</td></tr>
</table>
</body></html>```

WTH are all these numbers??? Where's my data? Fine...
```PS G:\SysinternalsSuite> (get-command g:\*\*\a*.exe).fileversioninfo.filedescription | echo
Windows Assessment and Deployment Kit - Windows 10``` 
Perfect!
```PS G:\SysinternalsSuite> (get-command g:\*\*\a*.exe).fileversioninfo.filedescription | echo | convertTo-HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>HTML TABLE</title>
</head><body>
<table>
<colgroup><col/></colgroup>
<tr><th>*</th></tr>
<tr><td>50</td></tr>
</table>
</body></html>
write GRRRR!!!!

行!我在这里想念什么?

4

2 回答 2

1

ConvertTo-Html通过检查您通过管道传递给它的任何对象的属性来工作,并创建一个表,其中每列对应于属性名称。

由于该[string]类型只有一个属性 -Length属性 - 这就是您在 html 表中得到的 - 一个包含每个输入字符串长度的列。

相反,发送一个对象,其中描述是属性的值,然后在表中指定所需的属性列表:

(Get-Command g:\*\*\a*.exe).FileVersionInfo |ConvertTo-Html FileDescription
于 2021-10-20T13:55:52.530 回答
-1
function HtmlTable
{
     [OutputType([System.Object])]

    Param (
        
        [Parameter(Mandatory=$True)]
        [String[]]
        $tableRows,
        [Parameter(Mandatory=$True)]
        [String[]] 
        $tableHeaders,
        [Parameter(Mandatory=$True)] 
        $tableWidthPercentage
    )        
    $htmTable = "<html>
                <style>
                body {font-family:Segoe UI, Helvetica Neue, Helvetica, Arial, Verdana;font-size:12px;}
                table{width: $tableWidthPercentage;border-collapse: collapse;}
                th{background-color:#106ebe; color:white;font-family:Segoe UI, Helvetica Neue, Helvetica, Arial, Verdana;font-size:12px;border: 1px solid black;padding: 4px;text-align: left;border: 1px solid #ddd;}
                tr:nth-child(even){background-color: #f2f2f2;}
                td{font-family:Segoe UI, Helvetica Neue, Helvetica, Arial, Verdana;font-size:12px;border: 1px solid #ddd;padding: 4px;}
                </style>
                <table>
                <tr>"
    Foreach ($header in $tableHeaders)
    {
        $htmTable +=  "<th>$header</th>"
    }
   
    $htmTable +="</tr>
                $tableRows
                </table>"
    return $htmTable
}
#simply you can call the function directly as below, where $tableData is the variable you can give the td data
$htmlTemplate= HtmlTable -tableWidthPercentage 80% -tableRows $tableData  -tableHeaders ID,CreatedDate,Title,State,Efforts
于 2021-10-20T13:42:29.190 回答