我是PowerShell世界的新手,我在VS中发现了一个警告,说我没有使用" Approved Verbs" 。所以我用Google搜索并发现the whole list of approved verbs用于用户定义的命令。
然而,一些非常相似的动词在这个列表中给出了完全不同的含义。所以,我试图总结这些差异;我需要知道的是,我对这些差异的理解是否准确。
Get
与Find
对比Search
Get-*
检索精确的内容(即对象,资源,值...任何可能的内容来自给定容器的东西,由PowerShell和.NET中的 POCO 表示。这需要相对短时间。
Find-*
尝试从给定的容器中检索内容。这需要相对长时间。
Search-*
尝试从给定的容器中检索某些内容的引用。这需要相对长时间。
Select
Select-*
从其输入中提取或转换以生成一些不同结构的输出。把它想象成Linq's Select clause。
根据已提供的参数,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-*
构成一个全新的东西,可能处于默认状态。
Install-*
将现有内容放在正确的位置。它也可能配置。 Install
的级别高于New
:它可以被视为{ New | Move | Copy } + [ Initialize ]
。