Что означает блок ?{ }
в PowerShell?Что значит? {} Означает в PowerShell?
Например
[enum]::GetValues([io.fileoptions]) | ?{$_.value__ -band 0x90000000}
Что означает блок ?{ }
в PowerShell?Что значит? {} Означает в PowerShell?
Например
[enum]::GetValues([io.fileoptions]) | ?{$_.value__ -band 0x90000000}
?
является псевдонимом для Where-Object
. Кудрявые скобки используются, если вам нужно сделать что-то более сложное с фактическим объектом. Вы также можете написать:
[enum]::GetValues([io.fileoptions]) | Where-Object { $_.value__ -band 0x90000000}
Я отредактировал свой ответ, потому что '-band' недоступен, если вы не используете фигурные скобки. –
PowerShell может быть настолько кратким с символами, что часто бывает сложно узнать биты синтаксиса, подобные этому! Я собрал [Полное руководство по пунктуации PowerShell] (https://www.simple-talk.com/sysadmin/powershell/the-complete-guide-to-powershell-punctuation/), чтобы упростить декодирование любого PowerShell из одностраничный настенный рисунок. –
? - это псевдоним для командлета Where-Object, хотя он также имеет другой псевдоним - где.
{} фигурные скобки используются в случае блока сценария, в данном случае это блок-фильтр скрипт, он в основном используется для комплексной фильтрации, то есть более чем на один critera, как это:
Get-Service | Where-Object -FilterScript {$_.Name -like '*audio*' -and $_.Status -eq 'Running'}
Использование Get-Alias
cmdlet в сомнениях:
Описание
Командлет
Get-Alias
получает псевдонимы (альтернативные имена команд и исполняемых файлов) в текущем сеансе. Это включает в себя встроенные псевдонимы, псевдонимы, которые вы установили или импортировали, и псевдонимы , которые вы добавили в свой профиль Windows PowerShell.По умолчанию
Get-Alias
принимает псевдоним и возвращает имя команды. Когда вы используете параметрDefinition
,Get-Alias
принимает имя команды и возвращает свои псевдонимы.Начиная с Windows PowerShell 3.0,
Get-Alias
отображает не-дефис имена псевдонимов в формате «<alias> -> <definition>
» в сделать еще проще найти информацию о том, что вам нужно.
PS D:\PShell> Get-Alias ?
CommandType Name ModuleName
----------- ---- ----------
Alias % -> ForEach-Object
Alias ? -> Where-Object
Alias h -> Get-History
Alias r -> Invoke-History
'помощь?' В PowerShell нашел бы этот псевдоним для вас. –