Поддержка подстановочных знаков в параметрах командлета

Использование массивов

Передача массивов в виде параметров

В предыдущих статьях было множество примеров по работе с массивами и хэш таблицами. Их же, как и любой другой тип данных, мы можем передавать в функцию. Для примера все команды Powershell, которые имеют ключ ComputerName, могут выполняться удаленно. Большинство таких команд могут принимать в виде значений массивы, то есть нам не обязательно передавать поочередно имена компьютеров.

Функция будет принимать массив с именами компьютеров и возвращать все остановленные сервисы. Я так же объявлю этот тип строгим, для наглядности, хотя и без этого в любом случае сработает:

Массивы так же работают по индексам, что позволяет передавать больше параметров. Такой способ не релевантный, но может когда-то пригодиться.

Хэш таблицы

Параметры хэш таблиц и могут передаваться не просто в функцию, а как параметры командлетов. Добавим в нашу функцию запуск сервиса, если он остановлен:

Знак @ в команде объявляет, что данные хэш таблицы будут использоваться как параметры команды

Важно, чтобы их имена  соответствовали настоящим параметрам

Исходные данные

Допустим, что мы имеем следующие связанные таблицы в базе данных:

/* Страны */
CREATE TABLE `tbl_country` (
    `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'Уникальный идентификатор страны',
    `country_name` VARCHAR(150) NOT NULL COMMENT 'Название страны',
     PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf-8 COMMENT='Основная таблица Страны';

/* Люди*/
CREATE TABLE `tbl_person` (
    `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'Уникальный идентификатор человека',
    `first_name` VARCHAR(60) NOT NULL COMMENT 'Имя',
    `last_name` VARCHAR(60) NOT NULL COMMENT 'Фамилия',
    `country_id` INT(11) COMMENT 'Страна проживания',
    `parent_id` INT(11) COMMENT 'Родитель',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf-8 COMMENT='Основная таблица Люди';

/* Ключи */
ALTER TABLE `tbl_person`
ADD CONSTRAINT `tbl_person_FK1`
FOREIGN KEY (`country_id`)
REFERENCES `tbl_country` (`id`)
, ADD INDEX `tbl_person_FK1` (`country_id` ASC);

Отображение групп объектов в представлении списка

Можно разделить объекты, отображаемые представлением списка, на группы. это не означает, что вы определяете группу, а только это Windows PowerShell запускает новую группу всякий раз, когда изменяется значение определенного свойства или сценария. В следующем примере новая группа запускается всякий раз, когда изменяется свойство System. ServiceProcess. ServiceController. serviceType .

Следующие XML-элементы используются для определения времени запуска группы:

  • Элемент GroupBy определяет свойство или скрипт, который запускает новую группу и определяет, как будет отображаться группа.

  • Элемент PropertyName указывает свойство, которое запускает новую группу при изменении ее значения. Необходимо указать свойство или скрипт для запуска группы, но нельзя указать и то, и другое.

  • Элемент ScriptBlock указывает скрипт, который запускает новую группу при изменении ее значения. Необходимо указать скрипт или свойство для запуска группы, но нельзя указать и то, и другое.

  • Элемент Label определяет метку, которая отображается в начале каждой группы. в дополнение к тексту, указанному этим элементом, Windows PowerShell отображает значение, вызвавшее новую группу, и добавляет пустую строку до и после метки. Этот элемент является необязательным.

  • Элемент Ошибка customcontrol определяет элемент управления, используемый для вывода данных. Этот элемент является необязательным.

  • Элемент кустомконтролнаме указывает общий элемент управления или представление, которое используется для отображения данных. Этот элемент является необязательным.

Пример полного файла форматирования, определяющего группы, см. в разделе представление списка (GroupBy).

Параметры

-InputObject <psobject>

Указывает объекты, которые будут записаны в строку. Введите переменную, содержащую объекты, либо команду или выражение для получения объектов.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

true (ByValue)

Принимать подстановочные знаки?

false

-Stream

Передает строки для каждого объекта отдельно. По умолчанию строки для каждого объекта накапливаются и отправляются в виде одной строки.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Width <int>

Указывает число знаков в каждой выходной строке. Все остальные знаки усекаются, а не переносятся на следующую строку. Если данный параметр опущен, ширина определяется характеристиками основного приложения. Значение по умолчанию для основного приложения PowerShell.exe равно 80 (знаков).

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

<CommonParameters>

Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе
about_Commonparameters.

cxGrid подсветка символов в ячейках

На событие OnCustomDrawCell для колонки, в которой нужно выполнять подсветку символов используем вот такой код:

procedure GridDB1TELCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
  AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var R: TRect;
    s1,S2: string;
    X,dx,cx,C,Y: integer;
begin
  if checkHighLight.EditValue = false then exit;// если отключена подсветка

  ADone := true;// сами полностью всё пророисовываем
  R := AViewInfo.Bounds;
  s1 := AViewInfo.Text;
  C := Length(edSearch.Text);
  cx := ACanvas.TextWidth(edSearch.Text);
  ACanvas.FillRect(R);
  X := R.Left;

  if AViewInfo.Selected then
    ACanvas.Font.Color := clWhite
  else
    ACanvas.Font.Color := clBlack;

  ACanvas.Canvas.TextOut(R.Left + 1, R.Top + 1, S1);
  ACanvas.Font.Color := clRed;
  repeat
    Y := Pos(edSearch.Text, S1);
    if Y > 1 then
    begin
      S2 := Copy(S1,1,Y-1);
      dx := ACanvas.TextWidth(s2);
      Delete(S1,1,Y-1);
      Inc(X,dx);
    end;

    if Y > 0 then
    begin
      ACanvas.Canvas.TextOut(X + 1, R.Top + 1, copy(S1, 1, C));
      Delete(S1,1,C);
      Inc(X,cx);
    end;
  until Y = 0;
end;

А чтобы без прокрутки символы подсвечивались, нужно выполнять обновление, перерисовку грида:

<TableView>.LayoutChanged;

Результатом работы многих командлетов являются объекты

Нужно помнить, что хотя вывод многих командлетов представляется в виде таблицы, на самом деле результатом работы командлета является не таблица и не строки, зачастую результатом работы является объект.

Именно свойства этого объекта и показывает командлет Get-Member в команде вида:

КОМАНДЛЕТ | Get-Member

Если вы присваиваете вывод командлета переменной, то ей также передаётся именно объект, обладающий всем набором свойств. В дальнейшем вы можете работать с любыми свойствами данного объекта ссылаясь на переменную.

Но на вывод в консоль показывает отформатированную таблицу, которая строится исходя из части данных. Вы можете изменить набор данных, которые выводит командлет.

Hashtable как свойства

Чаще всего в Powershell бы работаем со свойствами и с коллекциями мы можем работать так же.

Создание и получение свойств

Посмотрим как вызываются свойства обычных объектов в PS:

Аналогично этому примеру мы можем получать из коллекций:

Для создания новых свойств можно использовать такой же подход:

Проверка на существование

Когда мы работаем с таким типом как hashtable важно убедиться, что ключ по которому мы обращаемся действительно существует. В большинстве языков это делается так:

Я предпочитаю вызывать все ключи и проверять, что в них есть нужный:

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

Такой же ключ есть для проверки значений:

Удаление ключей и значений

Для удаления ключей нужно использовать функцию .Remove():

Значение удалить нельзя, так как коллекции существуют только в паре. Можно обнулить подставив $null:

Удалить все элементы коллекции можно переназначив ее:

Или использовать функцию clear():

Сортировка в Excel

Сортировка данных в Excel весьма полезный инструмент, улучшающий восприятие представленной информации. Прежде, чем перейти к разбору интерфейса, разберем порядок сортировки приложения:

  • Первыми идут цифры от меньшего к большему;
  • Затем идут специальные символы ($, %, * и т.д.);
  • За ними следуют знаки препинания;
  • Далее начинаются алфавиты, сначала английский, затем русский. Также не учитывается регистр, т.е. заглавные и прописные буквы равны друг другу (А=а).

Для того чтобы выполнить упорядочивание, пройдите на вкладку «Данные» и выберите раздел «Сортировка и фильтр». Для сортировки предназначено 3 значка:

Сортировка по возрастанию (от А до Я), по убыванию (от Я до А) и значок сортировки для задания условий по нескольким столбцам одновременно.

Рассмотрим все пункты подробнее.

Для того чтобы в эксель отсортировать диапазон ячеек, предварительно выделите его, затем кликните по необходимому значку. Учтите, что самая верхняя ячейка в выделенном диапазоне будет воспринята как шапка таблицы, т.е. отсортирована не будет и останется на прежнем месте. Также, если рядом с выделенным диапазоном имеются другие заполненные ячейки, то программой будет выведено следующее окно:

Если Вами будет выбран первый вариант, то строки таблицы сохранят свою целостность. Если второй, то данные вне диапазона сортировки останутся нетронутыми. На рисунках приведены результаты до и после сортировки для двух вариантов.

Установка порядка первого столбца таблицы при выборе первого варианта:

Как видно строки сохранили свою целостность, и имена по-прежнему соответствуют своим фамилиям.

Те же самые действия, но при выборе второго варианта:

Сортировка также произведена по первому столбцу, за исключением того, что второй столбец не сместился относительно отсортированных ячеек.

Выбирайте сразу необходимый диапазон для сортировки, чтобы Excel не предлагал Вам автоматически его расширить. Столбец, с которого Вы начнете выделение диапазона, будет являться столбцом для условий сортировки.

Если возникла необходимость задать порядок по нескольким столбцам, то в этом поможет значок «Сортировка», который уже упоминался. Выделите диапазон, который необходимо упорядочить

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

Для примера будем использовать следующую таблицу:

Мы специально будем использовать такие данные, чтобы наглядно отобразить, как Excel осуществляет сортировку.

Выделите диапазон нашей таблицы и кликните по значку «Сорировка». Появится следующее окно:

Изначально первый уровень сортировки уже добавлен. В выпадающем списке выберите нужный столбец. В качестве его названия служит верхняя («шапка»).

В следующем выпадающем списке можно выбрать, по каким параметрам сортировать диапазон. Например, если Вы использовали заливку для ячеек или меняли цвет шрифта, то возможно задать порядок по данным параметрам.

Следующий выпадающий список задает порядок: по возрастанию, по убыванию и т.п.

Для добавления второго и последующих столбцов для сортировки воспользуйтесь кнопкой «Добавить уровень» и задайте для него параметры.

Для нашего примера используем трехуровневую сортировку. Для первого уровня зададим сортировку по «Столбец1», порядок «От Я до А». Для второго уровня зададим сортировку по «Столбец2», порядок «По возрастанию». Для третьего уровня по «Столбец3», порядок «По убыванию». Параметры для сортировки везде «значения».

Рассмотрим получившийся результат:

Сначала сортировка прошла по первому столбцу (первый уровень), выделив данные в определенные поддиапазоны (в красной рамке). Далее происходит сортировка второго уровня, но данные сортируются только в пределах определенных первым уровнем поддиапазонов. Отсортировав второй уровень, вновь определяются поддиапазоны (в синей рамке). Затем сортировка происходит по третьему уровню по такому же алгоритму.

Таким образом, можно задавать сортировку в Excel по значительному количеству столбцов.

Также в окне сортировки можно задавать различные параметры:

  • Поставив флажок на поле «Мои данные содержать заголовки», программа учтет, что верхние ячейки диапазонов упорядочивать не нужно;
  • Нажав кнопку «Параметры» Вы получите окно, в котором можно задать:
  1. Возможность учета регистра (заглавные символы имеют больший порядковый номер по сравнению с прописными);
  2. Выбрать сортировку по строкам или по столбцам.

Как видите, пользоваться сортировкой в Excel совсем не трудно, но это важный инструмент, который часто требуется при работе с данными.

Пример 4

C:\PS>($a = get-childitem -path $pshome -recurse) | out-gridview

Описание
-----------
Эта команда сохраняет результаты в переменной и передает ее командлету Out-GridView. 

Команда использует командлет Get-ChildItem для получения файлов из каталога установки Windows PowerShell и его подкаталогов. Путь к каталогу установки сохраняется в автоматической переменной $pshome. 

Команда использует оператор присваивания (=), чтобы сохранить результаты в переменной $a, и оператор конвейера (|), чтобы передать этот результат командлету Out-GridView.
Скобки определяют порядок выполнения операций в команде. В результате вывод команды Get-ChildItem сохраняется в переменной $a до передачи командлету Out-GridView.






Как отсортировать данные в алфавитном или числовом порядке

  1. Откройте файл в Google Таблицах на компьютере.
  2. Выделите ячейки, которые нужно упорядочить.
  3.  Если на листе есть строка заголовка, закрепите ее.
  4. Нажмите Данные Сортировать диапазон Расширенные настройки сортировки диапазонов.
  5. Если у столбцов есть заголовки, установите флажок Данные со строкой заголовка.
  6. Укажите столбец, в котором вы хотите выполнить сортировку в первую очередь, и выберите нужный порядок.
  7. При необходимости нажмите Добавить ещё один столбец для сортировки.
  8. Нажмите Сортировать. 

Как отсортировать данные на всем листе

  1. Откройте файл в Google Таблицах на компьютере.
  2. В верхней страницы нажмите правой кнопкой мыши на букву, относящуюся к нужному столбцу.
  3. Выберите Сортировать лист А–Я или Сортировать лист Я–А.

Сортировка по цвету

  1. Откройте файл в Google Таблицах на компьютере.
  2. Выделите диапазон ячеек.
  3. Выберите Данные Создать фильтр.
  4. Чтобы увидеть доступные фильтры, нажмите на значок фильтра в первой строке диапазона.
  5. Если фильтр вам больше не нужен, нажмите Данные Удалить фильтр.

Как фильтровать данные

Внимание! Добавленный фильтр будут видеть все пользователи, которым доступна таблица. Изменить его смогут все, кому разрешено редактировать таблицу

  1. Откройте файл в Google Таблицах на компьютере.
  2. Выделите диапазон ячеек.
  3. Выберите Данные Создать фильтр.
  4. Чтобы увидеть доступные фильтры, нажмите на значок фильтра в первой строке диапазона.
    • Фильтровать по условию: выберите условия из списка или введите собственные. 
    • Фильтровать по значению: чтобы скрыть элемент, снимите флажок рядом с ним и нажмите «ОК». 
    • Поиск: введите запрос в окне поиска. 
    • Фильтровать по цвету: выберите, по какому цвету текста или заливки нужно отфильтровать данные. Сортировку можно выполнять по условным, но не по альтернативным цветам. 
  5. Если фильтр вам больше не нужен, нажмите Данные Удалить фильтр.

Как создать, сохранить, удалить или передать режим фильтрации

Внимание! Если у вас есть разрешение только на просмотр таблицы, вы можете создать временный режим фильтрации, который будет доступен исключительно вам. Этот режим не сохранится

На компьютере фильтры можно использовать таким образом, чтобы отфильтрованные данные были видны только вам. Изменения режима фильтрации сохраняются автоматически.

  1. Откройте файл в Google Таблицах на компьютере.
  2. Выберите Данные Фильтры Создать новый фильтр.
  3. Отсортируйте и отфильтруйте данные.
  4. Чтобы выйти из режима фильтрации, в правом верхнем углу экрана нажмите на значок «Закрыть» .
  5. Заданные настройки сохранятся автоматически.

Чтобы удалить или скопировать режим фильтрации, нажмите на значок настроек Удалить или Создать копию.

Если вам нужно удалить все фильтры, откройте каждый режим фильтрации, а затем нажмите на значок настроек Удалить.

Примечание. Изменять порядок режимов фильтрации нельзя.

Как посмотреть существующий режим фильтрации

Внимание! Применять несколько режимов фильтрации одновременно нельзя

  1. Откройте файл в Google Таблицах на компьютере.
  2. Нажмите Данные Фильтры.
  3. Выберите режим фильтрации.
  4. Он будет применен к таблице.
  5. Чтобы выйти из режима фильтрации, в правом верхнем углу экрана нажмите на значок «Закрыть» .

Как переименовать режим фильтрации

  1. Откройте файл в Google Таблицах на компьютере.
  2. Нажмите Данные Фильтры.
  3. Выберите режим фильтрации.
  4. В левом верхнем углу таблицы рядом с пунктом «Название» нажмите на название фильтра и укажите новое название.
  5. Нажмите клавишу «Ввод».

Как передать или отправить ссылку на режим фильтрации

  1. On your computer, open a spreadsheet in Google Sheets.
  2. Apply the filter view .
  3. Copy the URL.
  4. Share the filter view link.

Дополнительные сведения о фильтрах и режимах фильтрации

Фильтры и режимы фильтрации обеспечивают более удобную работу с данными таблицы. 

Что позволяют делать фильтры: 

  • показывать другим пользователям, открывающим таблицу, отфильтрованные данные;
  • выполнять сортировку. 

Что позволяют делать режимы фильтрации:

Сортировка и выбор

В случае одновременного применения выбора и сортировки вы столкнетесь с еще одной сложностью. Чтобы увидеть эту проблему воочию, выберите строку, затем отсортируйте данные по любому столбцу. Вы увидите, что выбор останется, но переместится на другой элемент, который после сортировки будет иметь тот же индекс, что и выбранная строка до сортировки. Другими словами, если вы выбираете вторую строку и выполняете сортировку, то вторая строка останется выбранной на новой странице, несмотря на то, что это будет уже другая строка.

В прошлом единственным решением этой проблемы было программное изменение выбранного элемента при каждом выполнении пользователем щелчка на ссылке заголовка. Но теперь в ASP.NET появилось свойство GridView.EnablePersistedSelection, которое позволяет быстрее справиться с ней. Просто установите это свойство в true, и ASP.NET будет заботиться о том, чтобы выбранный элемент идентифицировался по его ключу данных. Благодаря этому, выбранным будет оставаться нужный элемент, даже в случае его перемещения в новую позицию после сортировки GridView.

Использование командлета Format-List для представления в виде списка

Командлет показывает объект в виде списка, в котором каждое свойство снабжено меткой и отображается в отдельной строке:

Можно указать произвольное число свойств:

Получение подробных сведений с помощью подстановочных знаков в командлете Format-List

Командлет позволяет использовать подстановочные знаки в качестве значения параметра Property. Это дает возможность отображать подробные сведения. Часто объекты содержат больше информации, чем необходимо. Поэтому PowerShell по умолчанию выводит значения не всех свойств. Чтобы вывести список всех свойств объекта, используйте команду . Следующая команда формирует более 60 строк выходных данных для одного процесса:

Команда полезна для вывода подробных сведений, но для получения сведений с большим числом элементов обычно удобнее использовать упрощенное табличное представление.

Цветной cxGrid, как раскрасить грид с помощью стилей.

Для установки цвета шрифта, цвета фона и других свойств шрифта, лучше использовать свойство OnGetContentStyle.Если использовать OnDrawCall, то при экспорте и печати данные будут неизменны, т.к. DevExpress Printing System получает стили у cxGrid и применяет их для печати.Не обязательно кидать на форму TcxStyleRepository. Стили будем создавать прямо в коде события

procedure Grid1StylesGetContentStyle(Sender: TcxCustomGridTableView;
  ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem;
  out AStyle: TcxStyle);
begin
  if ARecord = nil then exit;
  if AItem = nil then exit;// эту проверку тоже полезно делать, если используете данный параметр
  if not ARecord.IsData then exit;
{если нужно красить только одну колонку, то нужно проверять AItem
if AItem.Index = TcxGridDBTableView(Sender).GetColumnByFieldName('имя_столбца_из_TDataSet').Index then
if AItem.Index = dbgApartREGION_NAME.Index then

}

  if not VarIsNull(ARecord.Values) then
  begin
    if not Assigned(AStyle) then
      AStyle := TcxStyle.Create(Sender);
    AStyle.Color := ARecord.Values;// закрашиваем фон
  end;
end;

Не забывайте, что цвет шрифта определяется не AStyle.Font.Color, а AStyle.TextColor.

5 ответов

Лучший ответ

Да, то, что вы делаете, похоже, должно работать, хотя я не уверен, для чего вы используете , поскольку он не используется в приведенном выше коде. Раньше я программно заполнял , создавая объект :

Определение его столбцов:

Создание s:

Добавление в :

И, наконец, установите как , как вы:

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

1

Andrew
17 Июн 2016 в 19:28

Если у вас уже есть список объектов, вы можете просто установить его в качестве источника данных для GridView, не нужно преобразовывать или создавать новую таблицу данных.

ArturoAP
17 Июн 2016 в 19:28

Почему вы не можете использовать ObjectDataSource? Укажите класс и метод в свойствах ObjectDatasource, и все готово. Привяжите ObjectDatasource к представлению сетки.

Arshad Mohammad
17 Июн 2016 в 20:33

Nipoon Patel
24 Май 2018 в 16:28

Изменить: другие люди говорили, что ваши данные должны быть источником в gridview. Я считаю, что это сработает и будет намного быстрее. Мое решение будет работать для создания новых данных с итерацией (например, вы хотите, чтобы идентификатор совпадал с местом в gridview). Однако может быть удобно создать новую модель для вашего элемента списка и создать несколько геттеров ради модульное ООП.

В этом случае я бы создал новую модель для вашего элемента gridview (в данном случае выглядит как пользователи). Итак, я сделал что-то подобное в UWP, и в итоге все выглядело так:

Затем класс ButtonModel содержал параметры, относящиеся к каждой кнопке, и получатели соответствующей информации, которую я хотел отобразить на этой кнопке.

Это может быть намного чище и модульнее. Пример для представления списка, но он должен работать аналогично для представления сетки. Поскольку вы уже работаете с заполненным списком, я бы предложил использовать цикл for-in для вашей итерации вместо стандартного цикла for. Это позволит сделать так, чтобы каждый раз, когда вы добавляете элемент в список, он будет добавляться в сетку.

Надеюсь это поможет! :)

Josh Abrams
17 Июн 2016 в 19:24

Выходные данные консоли (Out-Host)

По умолчанию Windows PowerShell отправляет данные в основное окно, именно это и делает командлет . Основная функция командлета  — разбиение на страницы. Например, следующая команда использует для разбиения выходных данных командлета на страницы:

Отображение основного окна выходит за пределы Windows PowerShell

Это важно, так как при отправке данных из Windows PowerShell они фактически удаляются. Это можно увидеть, если попытаться создать конвейер, выводящий страницы данных в основное окно, а затем попробовать отформатировать их в виде списка, как показано ниже:

Можно ожидать, что команда отобразит страницы сведений о процессах в формате списка. Вместо этого она отображает табличный список по умолчанию:

Командлет отправляет данные непосредственно в консоль, поэтому команда не получает ничего для форматирования.

Правильный способ использования этой команды заключается в том, чтобы поместить командлет в конце конвейера, как показано ниже. В результате перед разбиением на страницы и отображением данные процессов форматируются в виде списка.

Это касается всех командлетов Out. Командлет Out должен всегда находиться в конце конвейера.

Примечание

Все командлеты Out отображают выходные данные в виде текста, используя при этом действующее в окне консоли форматирование, включая ограничения длины строки.

Применение командлета Format-Table для табличного вывода

Если вызвать командлет без указания имен свойств для форматирования вывода команды , вы получите такие же выходные данные, как и без командлета . По умолчанию PowerShell отображает объекты Process в табличном формате.

Улучшение вывода командлета Format-Table (параметр AutoSize)

Хотя табличное представление и полезно при выводе большого количества сведений, интерпретация данных может вызвать затруднения, если экран слишком узок и не вмещает все данные. В предыдущем примере выходные данные усекаются. Если указать параметр AutoSize при выполнении команды , PowerShell вычислит ширину столбцов на основе размера отображаемых данных. Это повышает удобство чтения столбцов.

Командлет и в этом случае может усекать данные, но теперь только на правой границе экрана. Свойствам, за исключением последнего отображаемого, выделяется столько места, сколько нужно для корректного вывода самого длинного элемента данных.

Команда предполагает, что свойства перечислены в порядке важности. Поэтому она пытается полностью отобразить значения свойств, которые указаны в начале списка

Если команда не может отобразить все свойства, она удаляет из представления некоторые столбцы. Это поведение можно увидеть в предыдущем примере для свойства DependentServices.

Перенос на следующую строку вывода командлета Format-Table в столбцах (параметр Wrap)

Длинные данные командлета можно принудительно переносить на несколько строк в пределах столбца с помощью параметра Wrap. Использование параметра Wrap не всегда приводит к ожидаемому результату, так как без параметра AutoSize он применяет параметры по умолчанию:

Использование параметра Wrap без других параметров не очень замедляет обработку. Но применение параметра AutoSize к рекурсивному выводу списка файлов в каталоге со сложной структурой может потребовать значительного времени и потреблять много памяти.

Если загрузка системы для вашего сценария не критична, параметр AutoSize хорошо сочетается с параметром Wrap.
В этом случае ширина первых столбцов также позволяет выводить элементы в одной строке, а последний столбец при необходимости разбивается на несколько строк.

Примечание

Возможно, некоторые столбцы не попадут в представление, если первым будет указан самый широкий столбец. Для получения лучших результатов выводите первыми элементы данных наименьшего объема.

В следующем примере первыми указаны наибольшие по размеру свойства.

Даже при использовании переноса строк столбец Id пришлось исключить:

Организация табличного вывода (параметр -GroupBy)

Другим полезным параметром управления табличным выводом является GroupBy. Длинные табличные списки особенно тяжелы для сравнения. Параметр GroupBy группирует выходные данные в соответствии со значением свойства. Например, можно сгруппировать службы по параметру StartType, чтобы упростить проверку, но исключить значение StartType из списка отображаемых свойств:

Применение командлета Format-Table для табличного вывода

Если вызвать командлет без указания имен свойств для форматирования вывода команды , вы получите такие же выходные данные, как и без командлета . По умолчанию PowerShell отображает объекты Process в табличном формате.

Улучшение вывода командлета Format-Table (параметр AutoSize)

Хотя табличное представление и полезно при выводе большого количества сведений, интерпретация данных может вызвать затруднения, если экран слишком узок и не вмещает все данные. В предыдущем примере выходные данные усекаются. Если указать параметр AutoSize при выполнении команды , PowerShell вычислит ширину столбцов на основе размера отображаемых данных. Это повышает удобство чтения столбцов.

Командлет и в этом случае может усекать данные, но теперь только на правой границе экрана. Свойствам, за исключением последнего отображаемого, выделяется столько места, сколько нужно для корректного вывода самого длинного элемента данных.

Команда предполагает, что свойства перечислены в порядке важности. Поэтому она пытается полностью отобразить значения свойств, которые указаны в начале списка

Если команда не может отобразить все свойства, она удаляет из представления некоторые столбцы. Это поведение можно увидеть в предыдущем примере для свойства DependentServices.

Перенос на следующую строку вывода командлета Format-Table в столбцах (параметр Wrap)

Длинные данные командлета можно принудительно переносить на несколько строк в пределах столбца с помощью параметра Wrap. Использование параметра Wrap не всегда приводит к ожидаемому результату, так как без параметра AutoSize он применяет параметры по умолчанию:

Использование параметра Wrap без других параметров не очень замедляет обработку. Но применение параметра AutoSize к рекурсивному выводу списка файлов в каталоге со сложной структурой может потребовать значительного времени и потреблять много памяти.

Если загрузка системы для вашего сценария не критична, параметр AutoSize хорошо сочетается с параметром Wrap.
В этом случае ширина первых столбцов также позволяет выводить элементы в одной строке, а последний столбец при необходимости разбивается на несколько строк.

Примечание

Возможно, некоторые столбцы не попадут в представление, если первым будет указан самый широкий столбец. Для получения лучших результатов выводите первыми элементы данных наименьшего объема.

В следующем примере первыми указаны наибольшие по размеру свойства.

Даже при использовании переноса строк столбец Id пришлось исключить:

Организация табличного вывода (параметр -GroupBy)

Другим полезным параметром управления табличным выводом является GroupBy. Длинные табличные списки особенно тяжелы для сравнения. Параметр GroupBy группирует выходные данные в соответствии со значением свойства. Например, можно сгруппировать службы по параметру StartType, чтобы упростить проверку, но исключить значение StartType из списка отображаемых свойств:

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: