ConvertTo-HTML 输出问题

ConvertTo-HTML output issue

我使用 gciconvertto-html 生成磁盘 space 使用情况 HTML 报告。我的脚本的一部分为 -folder parameter 输入的每个指定文件夹生成 2 tables。在第一个 table 中,我检索了 10 个最大的文件夹,在第二个 table 中,我生成了文件年龄报告。

现在的问题是:当只输入一个目录时,HTML 输出没问题,但如果我输入 2 个目录名称,我只会得到最后输入的目录名称的 tables。

例如:

my-function -folder c:\folder1, c:\folder2

只会为目录 c:\folder2.

创建 tables

如果我 运行 这个函数没有转换为 HTML 我会在我的控制台中得到每个目录的所有 table,就像我 out-file 到一个简单的 txt .

您只获得列表中最后一个文件夹的表格,因为您将表格分配给循环内部的变量:

$folder | % {
    ...
    big = $gdfolders | ... | ConvertTo-Html -Fragment -As Table | Out-String
    $Fileage = $gdage | ... | ConvertTo-Html -Fragment -As Table | Out-String
}

ConvertTo-Html -Body "big $FileAge" | Out-File c:\test.html

这会将上一次迭代中的表替换为当前迭代中的表,在循环完成后只剩下上一次迭代中的表。

您需要做的是通过将它们附加到变量来收集循环中的所有表(注意循环内的 +=):

<b>big = @()
$Fileage = @()</b>
$folder | % {
    ...
    big <b>+=</b> $gdfolders | ... | ConvertTo-Html -Fragment -As Table | Out-String
    $Fileage <b>+=</b> $gdage | ... | ConvertTo-Html -Fragment -As Table | Out-String
}

ConvertTo-Html -Body "big $FileAge" | Out-File c:\test.html