Форматирование вывода командлета

Оцените статью

windows78459 Форматирование вывода командлетаПо умолчанию объекты, попадающие в окно командной строки PowerShell или перенаправленные в файл, форматируются в виде таблицы со строкой названий свойств в начале списка. Форматирование этого списка и выбор перечисляемых свойств определяются в XML-файле, который хранится на вашем компьютере, и вы можете настроить этот файл по-своему, но в данной главе этот вопрос рассматриваться не будет.

Для настройки перечня выводимых в список свойств и для выбора способа их форматирования можно воспользоваться командлетом format-table. Например, команда dir | format-table — property mode, length, lastwritetime

Выводит содержимое текущего каталога, и для каждого имеющегося в списке файла или папки выводит три выбранных свойства. Для получения дополнительной информации можно набрать команды help format-table — detailed и help format — table — examples. Особенно полезны ключи — GroupBy и — Wrap. Для детального форматирования будет, наверное, проще завершить командную строку оператором foreach. Внутри завершающего оператора можно воспользоваться встроенной переменной $_, чтобы получить доступ к каждому объекту, который поступает через канал командной строки, и воспользоваться программным кодом для вычисления одной или нескольких строк вывода для каждого объекта. Имеющийся в языке программирования PowerShell оператор — f форматирует одно или несколько значений в строке вывода. Он похож на оператор printf языка С. Он используется следующим образом: "Форматируемая_строка" — f Значение Или "Форматируемая_строка" — f Массив. Оператор выдает строковое значение. Символы внутри Форматируемой_строки копируются буквально, за исключением тех подстрок, которые имеют вид {0}, {1}, {2} и т. д., которые заменяются первым, вторым, третьим и последующими Значениями, находящимися справа от — f. Рассмотрим пример. Это строковое выражение ‘My name is {0} and I am {1} years old’ — f $name, $age может вывести строку My name is Tice Robert and I am 2 years old (Меня зовут Тайс Роберт, и мне 2 года).

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

Комментирование закрыто.

Вверх страницы