Select-Object @{n='firstname';e={'Prateek'}},@{n='lastname';e={'Singh'}} -InputObject ''
#или самый простой способ
$Object = "" | Select-Object Computer, Name, Path, Description
select @{l/name="Название поля";e={вычисляемый блок}}
name/label | указывает имя создаваемого свойства с использованием метки в качестве псевдонима. name= |
expression | блок скрипта, используемый для вычисления нового значения свойства. expression= { $_.<PropertyName> } |
Выравнивание(alignment) | Когда используется командлет табличного вывода, он определяет способ отображения значений в столбце с использованием left, center, или right в качестве допустимых значений |
Formatstring | указывает строку формата, которая является строкой форматирования .NET |
Ширина/ width | для табличного вывода определяет максимальную ширину столбца, которая должна быть больше 0 |
Глубина | используется только с командлетом Format-Custom. Указывает максимальную глубину расширения для каждого свойства |
По возрастанию/убыванию | — укажите порядок сортировки одного или нескольких свойств, это логические значения, для которых задано значение $True или $False |
Get-ChildItem | Select-Object @{Label="Режим"; Expression={$_.Mode}; Width=8},
@{Label="Последняя запись в"; Expression={$_.LastWriteTime}; Width=20},
@{Label="Размер"; Expression={$_.Length}; Width=7; Alignment="Left"},
@{Label="Имя"; Expression={$_.Name}}
Get-Process | Select-Object -Property ProcessName,{$_.StartTime.DayOfWeek}
Get-PSDrive C | Format-Table @{Expression={$_.Free/1GB}},@{Expression={$_.Used/1GB}}
Get-PSDrive C | Select-Object @{Expression={$_.Free/1GB}},@{Expression={$_.Used/1GB}}
Get-ChildItem | Format-Table @{Label="Режим"; Expression={$_.Mode}; Width=8},
@{Label="Последняя запись в"; Expression={$_.LastWriteTime}; Width=20},
@{Label="Размер"; Expression={$_.Length}; Width=7; Alignment="Left"},
@{Label="Имя"; Expression={$_.Name}}
Get-NetTcpConnection -State Listen |
Select-Object LocalAddress,LocalPort,OwningProcess,@{Name="Process";Expression={(Get-Process -Id $_.OwningProcess).ProcessName}} |
Sort-Object -Property LocalPort |
Format-Table
Get-ChildItem *.json -File |
Format-List Fullname,
@{
name='Modified'
expression={$_.LastWriteTime}
formatstring='O'
},
@{
name='Size'
expression={$_.Length/1KB}
formatstring='N2'
}
Get-ChildItem -File |
Format-Wide -Property @{e={'{0} ({1:N2}kb)' -f $_.name,($_.length/1kb)}}
Get-ChildItem -File |
Sort-Object extension |
Group-Object -NoElement -Property @{
expression={
switch ($_.extension) {
'.md' {'Content'}
'' {'Metacontent'}
'.ps1' {'Automation'}
'.yml' {'Automation'}
default {'Configuration'}
}
}
}
1..10 | Measure-Object -Property {($_ % 3) -eq 0} -Sum
$aliases = Get-Alias c* |
Select-Object Name,
Definition,
@{
name='ParameterCount'
expr={$_.Parameters.Keys.Count}
}
$aliases | Get-Member
$aliases
Import-Csv C:\temp\sales-data.csv |
Sort-Object Date, @{expr={$_.UnitsSold}; desc=$true}, Salesperson |
Select-Object Date, Salesperson, UnitsSold
'1', '10', '2' | Sort-Object { [int] $_ }
$Object | Format-Table @{
Name = 'Name'
Expression = { $_.Name }
Width = 20
},
@{
Name = 'Date'
Expression = { Get-Date $_.Date -Format "MM/dd/yyyy" }
Width = 10
},
$Object | Select-Object Name,@{
Name = 'NewDate'
Expression = { Get-Date $_.Date -Format "MM/dd/yyyy" }
}