【发布时间】:2017-05-11 22:55:29
【问题描述】:
我正在尝试在 powershell 中添加自动完成功能。在这种情况下,我希望能够在我的控制台中输入“test”。之后,可以键入 Get-Se[TAB] 以使用 TAB 扩展自动完成 Get-Search。
PS > Get-Se[TAB]
PS > Get-Search
function test
{
[CmdletBinding()]
param()
# label the while loop "outer"
:outer while($true){
$x = Read-Host
# split $x into two parts
$first,$second = $x -split '\s',2
# switch evaluating the first part
switch($first){
Get-Search {
# Searching
}
default {
Write-Host "False"
}
}
}
}
其他信息:
目标: 我希望能够使用类似于 cmdlet 的参数来获得 Powershell 的感觉。
关于原始脚本:
我创建了一个脚本来自动执行来自多个 API 的查询,供许多不同的用户使用。我现在的搜索是“s”,我希望它是“Get-Search”所以 Read-Host 等待输入,用户将输入“Get-Search 'value'”并返回格式化的 JSON .
PS > Get-Search foobar
#Returns JSON
【问题讨论】:
-
Poweshell 已经有自动完成功能了?如果我输入
Get-Se[TAB]它会循环我通过Get-SecureBootPolicy, Get-SecureBootUEFI, Get-Service请参阅gcm Get-Se*要让开关对不精确的参数做出反应,您可以查看 -wildcard 或 -regex 选项get-help about_switch -show
标签: powershell