Могут ли эти команды помочь вам в вашей задаче.
$DirectoryPath = 'C:\Temp\YourFiles'
foreach ($File in (Get-ChildItem -Path $DirectoryPath))
{
#Do your work
$File.FullName
$File.Name
$value | Format-Table -AutoSize
}
Надеюсь, я вас правильно понял.
Ваша цель - напечатать вывод на консоль powershell, верно?
Как я вижуиз вашего скрипта вы получите значения, которые вы ищете.
Вы можете создать таблицу, в которой собраны все значения, а затем распечатать это как объект на консоли. Таким образом, вы должны получить «хорошую» таблицу.
[PSCustomObject[]]$Output = @() #Before foreach-loop
[System.Collections.Hashtable]$Hashtable = @{ #Inside foreach-loop
Name = $File.Name
Column1 = $InternetFacingAnswer.Text
Column2 = $OS.Text
Column3 = $Guidance.Text
}
$Output += New-Object -TypeName 'PSCustomObject' -Property $Hashtable
$Output | Select-Object -Property Name, Column1, Column2, Column3 | Format-Table -AutoSize #After foreach-loop
См. Пример вместе с вашим фрагментом кода. Пожалуйста, добавьте также ваш код и ошибки, если что-то не работает.
$DirectoryPath = 'V:\directory goes here\'
[PSCustomObject[]]$Output = @() #Before foreach-loop
foreach ($File in (Get-ChildItem -Path $DirectoryPath))
{
#Do your work
$workbook = $excel.Workbooks.Open($File.FullName)
$workbook.sheets.item(1).activate()
$WorkbookTotal=$workbook.Worksheets.item(3)
$InternetFacingAnswer = $WorkbookTotal.Cells.Item(2, 4)
$OS = $WorkbookTotal.Cells.Item(4, 3)
$Guidance = $WorkbookTotal.Cells.Item(4,7)
[System.Collections.Hashtable]$Hashtable = @{ #Inside foreach-loop
Name = $File.Name
Column1 = $InternetFacingAnswer.Text
Column2 = $OS.Text
Column3 = $Guidance.Text
}
$Output += New-Object -TypeName 'PSCustomObject' -Property $Hashtable
}
$Output | Select-Object -Property Name, Column1, Column2, Column3 | Format-Table -AutoSize #After foreach-loop