Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何让Powershell TabExpansion打印所有可能的补全?_.net_Windows_Powershell_Scripting - Fatal编程技术网

.net 如何让Powershell TabExpansion打印所有可能的补全?

.net 如何让Powershell TabExpansion打印所有可能的补全?,.net,windows,powershell,scripting,.net,Windows,Powershell,Scripting,Powershell中的默认TabExpansion在命令提示符下循环完成片段的可能完成。在PowerShell主机内部,有一个循环缓冲区,第一个选项卡填充缓冲区,并将第一个可能的完成置于提示符上。随后的选项卡循环浏览可能完成的列表 如何修改TabExpansion,以便在点击时仅显示可能的完成集 另外,我可以从命令提示符显式调用TabExpansion函数吗?如果可以,如何调用 (如果您不知道我所说的“修改选项卡扩展”是什么意思,请参阅。)请参阅此处。 退房。很酷 更新 从CodePlex下载

Powershell中的默认TabExpansion在命令提示符下循环完成片段的可能完成。在PowerShell主机内部,有一个循环缓冲区,第一个选项卡填充缓冲区,并将第一个可能的完成置于提示符上。随后的选项卡循环浏览可能完成的列表

如何修改TabExpansion,以便在点击时仅显示可能的完成集

另外,我可以从命令提示符显式调用TabExpansion函数吗?如果可以,如何调用

(如果您不知道我所说的“修改选项卡扩展”是什么意思,请参阅。)

请参阅此处。 退房。很酷

更新
从CodePlex下载。

您可以在提示下直接修改它,或者在您的配置文件脚本中修改它,这只是一个函数,因此您可以在提示下键入它以修改它以打印所有答案:

Copy Function:\TabExpansion Function:\OriginalTabExpansion
function TabExpansion([string] $line, [string] $lastword) { 
   OriginalTabExpansion $line $lastword | Out-Host
   $line
}
或者,您可以更进一步,对其进行广泛格式化:

Copy Function:\TabExpansion Function:\OriginalTabExpansion
function TabExpansion([string] $line, [string] $lastword) { 
   Write-Host # an emtpy newline to avoid outputting on the prompt line
   # A hack, because Format-Wide doesn't work on strings 
   $obj = new-object psobject | add-member noteproperty value "" -Passthru
   OriginalTabExpansion $line $lastword | ForEach { $obj.value = $_; $obj } | 
      Format-Wide -auto value | Out-Host
   ## Maybe even re-output your prompt function... depending on how it's written
   Write-Host $(prompt) -NoNewLine
   return $line # keep the command as it was
}

PS:on Format-Wide

这一行代码似乎解决了Format-Wide和字符串数组的问题:

$ComputerList |选择对象-属性@{Expression={[Object[]]$};Name=“Name”}格式宽-属性名称-第5列

本例中的字符串数组是$ComputerList,定义如下:


[array]$ComputerList=@(“WINSRV2003-32B”、“WINSRV2003-64B”)

我无法想象没有PowerTab的Powershell。真的吗?有那么简单吗?我刚才试过这个,但它对我不起作用。我得到了空白行,但没有显示潜在的完成。我只测试了第二个解决方案在PultS壳2 CTP3中,但是它应该工作。