ConvertTo-HTML输出问题

时间:2015-01-19 17:30:52

标签: powershell

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

现在的问题是:当只输入一个目录时,HTML输出就可以了,但如果输入2个目录名,我只得到最后输入目录名的表。

例如:

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

将只为目录c:\folder2创建表。

如果我在不转换为HTML的情况下运行此函数,我会在控制台中获取每个目录的所有表,与我out-file相同,只需一个简单的txt。

1 个答案:

答案 0 :(得分:2)

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

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

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

这将使用当前迭代中的表替换上一次迭代中的表,只留下循环结束后最后一次迭代中的表。

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

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

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