大家好,我是码农杰克~
在PowerShell中很多Cmdlet在输入参数时按tab键就可以可以自动补全,这是怎么做到的呢?
我们先来看个PowerShell自带命令:Test-Path
在PowerShell中输入下面的命令
Test-Path -Path C:\ -PathType
然后按空格,然后按Tab键,就可以看到 -PathType 后面的值会自动补全,并且总是在限定的几个值之前循环
Test-Path -Path C:\ -PathType Container
Test-Path -Path C:\ -PathType Leaf
Test-Path -Path C:\ -PathType Any
其实在PowerShell中有不止一种方法来自动补全参数。
PowerShell默认支持的自动补全
Cmdlet名
任何被加载到当前的PowerShell host中的Cmdlet在输入时按tab键都会被自动补全,如果输入的内容有多个匹配项,则在不断按Tab键时便会在多个匹配项之间切换。
比如我们输入:
Test-
再按Tab键,就有可能会得到
Test-AppLockerPolicy
继续按Tab键就可以在下面的Cmdlet之间来回切换,直到你选中你想要的
Test-Dtc
Test-NetConnection
Test-ScriptFileInfo
Test-SvnRepository
Test-AppLockerPolicy
Test-Certificate
Test-Connection
Test-DscConfiguration
Test-FileCatalog
Test-Json
Test-KdsRootKey
Test-ModuleManifest
Test-Path
Test-PnPListItemIsRecord
Test-PnPMicrosoft365GroupAliasIsUsed
Test-PnPSite
Test-PnPTenantTemplate
Test-PSSessionConfigurationFile
Test-WSMan
当然并不是每个人的机器上都都能得到相同的结果,这取决于你当前的PowerShell中加载了那些模块。
可以使用下面的命令来查看,你的系统中输入上面的命令可以得到那些可能的Cmdlet。
Get-Command Test-*
这是一个非常有用的Cmdlet尤其是当你记不住某些Cmdlet名字的时候可以使用这个命令来查找,它支持多个通配符比如:
Get-Command *Test*
Get-Command Get-*PnP*
Get-Command Set-*Item*
参数名
任何已被加载的Cmdlet在输入其参数名时,按Tab键,PowerShell也可以自动补全。
比如在PowerShell中输入下面的命令:
Get-Item -
再按Tab键,就可以自动补全下面的参数名:
Get-Item -Path
不停按Tab键,就可以在不同参数之间切换。
Get-Item [-Path] <string[]> [-Filter <string>] [-Include <string[]>] [-Exclude <string[]