2015-01-19 6 views
0

Я генерирую использование дискового пространства в HTML-отчетах с gci и convertto-html. Часть моего скрипта генерирует 2 таблицы для каждой указанной папки, введенной -folder parameter. В первой таблице я получаю 10 самых больших папок, а во второй таблице я создаю отчет о возрасте файла.ConvertTo-HTML output issue

Теперь проблема: когда вводится только один каталог, вывод HTML прекрасен, но если я ввожу два имени каталога, я получаю только таблицы для последнего введенного имени каталога.

Например:

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

будет делать только таблицы для каталога c:\folder2.

Если я запустил эту функцию без преобразования в HTML, я получаю все таблицы для каждой директории в моей консоли, как I out-file, до простого txt.

ответ

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
+0

Спасибо большое, отлично работают! – kekimian