Верно ли то, что я понимаю о глаголах, утвержденных PowerShell? - PullRequest
0 голосов
/ 02 июня 2018

Я новичок во вселенной PowerShell и только что наткнулся на предупреждение в VS, в котором говорилось, что я не использую "Одобренные глаголы" .Таким образом, я гуглил это и нашел весь список утвержденных глаголов для пользовательских команд.

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

Get против Find против Search

Get-* извлекает точное что-то (то есть объект , ресурс , значение ... Все, что может быть представлено POCO в PowerShell и .NET)из данного контейнера вещей.Требуется относительно коротких времени.

Find-* пытается извлечь что-то из заданного контейнера вещей.Требуется относительно долго времени.

Search-* пытается извлечь ссылку чего-либо из данного контейнера вещей.Требуется относительно long time.


Select

Select-* извлекает или преобразует из своего ввода, чтобы произвести несколько иначеструктурированный вывод.Думайте об этом как о предложении Linq's Select .

В зависимости от заданных параметров, Select-Object может действовать как фильтр как Where-Object, через Where-Object гораздо более низкий уровень.


Get против Read против Receive

Get-* извлекает данные из ресурса (например, файла, объекта(переменная среды).

Read-* извлекает данные из консоли или конвейера .Понятие stream не очень далеко.

Receive-* извлекает данные асинхронно (например, из сети).


Set против Write против Send

Set-* исправляет данные ресурса (например, файл, объект, переменную среды).

Write-* создает и отображает данные на консоли или конвейере.Запись данных является окончательным результатом .

Send-* выдает данные асинхронно (например, по сети).Отправка данных - это только первый шаг, эти данные будут обработаны позже , вероятно, другим процессом.


Write против Out

Write-* производит некоторый вывод.

Out-* перенаправляет вывод конвейера.Думайте об этом как о перенаправлениях Bash (например, > /dev/null, >> /var/log/cake.log).


New против Add

New-* составляет марку новое что-то , вероятно, пустое или в состоянии по умолчанию.

Add-* добавляет данные к существующему чему-то .


Add противRegister

Add-* добавляет данные к чему-то .

Register-* создает запись о чем-то в контейнере (например, в базе данных).


Initialize против Install

Initialize-* выполняет первую настройку чего-либо.

Install-* настраивает что-то, когда этого не было раньше .Install более высокий уровень, чем Initialize: его можно увидеть как { New | Move | Copy } + [ Initialize ].


New против Install

New-* делаетup что-то совершенно новое, вероятно в состоянии по умолчанию .

Install-* помещает существующее что-то в нужное место.Это может также настроить это кстати.Install является более высоким уровнем, чем New: его можно увидеть как { New | Move | Copy } + [ Initialize ].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...