Как изменить форматирование по умолчанию в Powershell для использования Format-Table -autosize?
Как я могу заставить PowerShell использовать
Format-Table -auto
как форматирование по умолчанию при записи возвращенного массива объектов на консоль? Спасибо
1 ответ
Если вы все время вызываете командлет и если у вас есть хотя бы PowerShell v3.0, вы можете установить $PSDefaultParameterValues
о котором вы можете прочитать больше о about_Parameters_Default_Values.
Синтаксис, который бы удовлетворил ваши потребности:
$PSDefaultParameterValues=@{"<CmdletName>:<ParameterName>"="<DefaultValue>"}
Таким образом, мы добавим в переключатель, установив его $true
,
$PSDefaultParameterValues = @{"Format-Table:Autosize"=$true}
Чтобы удалить это, вам нужно будет сделать то же самое, что и элемент хеш-таблицы.
$PSDefaultParameterValues.Remove("Format-Table:Autosize")
Из вышеупомянутой статьи приведена некоторая информация о том, как с этим бороться.
$PSDefaultParameterValues - это переменная предпочтения, поэтому она существует только в сеансе, в котором она установлена. У него нет значения по умолчанию.
Чтобы установить $PSDefaultParameterValues, введите имя переменной и одну или несколько пар ключ-значение в командной строке.
Если вы введете другую команду $PSDefaultParameterValues, ее значение заменит исходное значение. Оригинал не сохраняется.
Чтобы сохранить $PSDefaultParameterValues для будущих сеансов, добавьте команду $PSDefaultParameterValues в свой профиль Windows PowerShell. Для получения дополнительной информации см. About_Profiles.
Вне этого я не уверен, так как было бы трудно изменить в динамическом смысле. Вы хотите быть уверены, что данные, отправляемые в поток, отображаются на экране так же, как format-table -auto
делает, но вы должны убедиться, что это не влияет на данные, чтобы вы не могли перехватить их или отправить по конвейеру.
Вы смотрите на создание файлов нестандартного формата вывода, как говорит Фроде Ф., тогда вам нужно будет рассмотреть вопрос о about_Format.ps1xml, но вам нужно будет настроить это для каждого объекта, который вы хотите отображать таким образом.
Например, FileSystem.format.ps1xml будет управлять выводом из Get-ChildItem
, Format-Table
является более динамичным, и я не думаю, что вы можете сказать, просто используйте Format-Table
в этом файле.