после некоторых тестов я нашел быстрое решение, вы можете добавить в верхней части своей индексной страницы:
<script>
$=jQuery;
</script>
он работает очень хорошо:)
Проблема здесь заключается в использовании вами FT
, который является псевдонимом для Format-Table
. Эти командлеты Format-
предназначены только для вывода на консоль / экран . Есть много вещей, которые вы можете сделать, чтобы настроить этот вывод, но в каждом случае PowerShell необходимо массировать данные, чтобы это было возможно. Это включает разбиение на переданные объекты на группы разных объектов ...
Microsoft.PowerShell.Commands.Internal.Format.FormatEndData
Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData
Microsoft.PowerShell.Commands.Internal.Format.FormatStartData
Microsoft.PowerShell.Commands.Internal.Format.GroupEndData
Microsoft.PowerShell.Commands.Internal.Format.GroupStartData
Вышеупомянутые типы данных были извлечены из запуска этого кода.
Get-ChildItem c:\temp | Format-Table | Get-Member
Таким образом, у вас больше нет объектов System.IO.FileInfo
и System.IO.DirectoryInfo
, которые вы обычно получали из Get-ChildItem
. Другая большая проблема связана с природой Format-cmdlets усеченные данные, такие как массивы с большим количеством элементов или длинными строками, чтобы сделать так, чтобы они соответствовали размеру экрана. В случае массивов это происходит из-за переменной предпочтения $FormatEnumerationLimit
, которая обычно по умолчанию равна 4.
Ten Numbers
-----------
{1, 2, 3, 4...}
Эти и другие ограничения могут быть смягчены с переключателями команд, такими как -AutoSize
и -HideTableHeaders
, out-string -width
и т. д. Это не имеет значения, потому что ...
Хорошая новость - это решение очень просто. Прекратите использовать их для чего-либо, кроме консольного вывода. Используя мой предыдущий пример:
$result = Get-ChildItem C:\temp
Get-ChildItem C:\temp | Export-CSV $path -NoTypeInformation
. Другие командлеты Export-
могут быть предпочтительны здесь, например Export-CLIXml
для сложных объектов, если вы хотите их хранить для использования в другом месте. Если вы просто ищете что-то красивое для включения в свой вывод, тогда рассмотрите ConvertTo-HTML
. Select-Object
. $result | Select prop1, prop2
. Вы также можете расширить свой выбор свойств, чтобы просто получить строки или строковый массив с помощью -ExpandProperty
: $result | Select -ExpandProperty prop1
$result | Select prop1, @{Name="prop2";Expression={$_.prop2 * 3}
Потенциально допустимое использование
Некоторые предпочитают вывод для использования в электронных письмах и для записи статистики. Хотя он является неотъемлемой частью хранения данных в более удобном для использования формате для последующего использования. Однако, если вам действительно нужны эти данные, имейте в виду, что вы не работаете с объектом, который изначально был у вас.
Итак, если вам нужны ваши данные в формате таблицы, но они сохранены в виде строки, рассмотрите Out-String
$body = Get-ChildItem c:\temp | Format-Table | Out-String
, но помните, что Format-Table
будет воспроизводить с выходом объекта в порядке чтобы он отображался на экране (усеченные свойства массива и длинные строки). На самом деле .. если вы хотите, чтобы это было красиво и отформатировано, вы должны просто использовать ConvertTo-HTML
.
Точка, вам почти никогда не нужно сохранять данные из Format-Table. Существует почти всегда лучший способ.