如何在PowerShell中键入TAB字符?

时间:2013-12-19 20:28:27

标签: windows powershell command-prompt

任务:默认情况下,在Windows命令提示符下按TAB键将输出文件名,而在PowerShell中则不执行任何操作。我希望能够以交互模式键入TAB字符,而不是通过脚本。

研究:我在此网站和Google搜索中发现了类似的问题。找到的解决方案是解决bash(Mac)或iterm(Linux),或建议更改为TweakUI等其他程序。我的问题特定于Windows PowerShell或命令提示符。

澄清:对您的答案是否适用于我的问题的简单测试是在PS / CP中输入echo "1 TAB-method 2",其中TAB-method是关于如何插入TAB字符的建议。如果回声给出1 2(即1然后是TAB空格后跟2),那就是我正在寻找的东西。希望有所帮助,并感谢大家花时间来研究这个问题。

4 个答案:

答案 0 :(得分:57)

如果有帮助,您可以在双引号字符串中嵌入制表符:

PS> "`t hello"

答案 1 :(得分:10)

使用[char] 9进行测试,例如:

$Tab = [char]9
Write-Output "$Tab hello"

输出:

     hello

答案 2 :(得分:4)

在Windows命令提示符下,您可以通过启动它来禁用选项卡完成:

cmd.exe /f:off

然后标签字符将回显到屏幕并按预期工作。或者,您可以通过修改注册表来禁用选项卡完成字符,或修改用于选项卡完成的字符。

cmd.exe帮助页面解释了它:

  

您可以为特定项启用或禁用文件名完成   使用/ F:ON或/ F:OFF开关调用CMD.EXE。你可以启用   或禁用计算机上所有CMD.EXE调用的完成   和/或用户登录会话通过设置以下任一或两个   使用REGEDIT.EXE注册表中的REG_DWORD值:

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\PathCompletionChar

    and/or

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\PathCompletionChar
     

使用用于特定的控制字符的十六进制值   函数(例如0x4是Ctrl-D,0x6是Ctrl-F)。用户具体   设置优先于机器设置。命令行   交换机优先于注册表设置。

     

如果使用/ F:ON开关启用完成,则两个控件   使用的字符是Ctrl-D,用于完成目录名称和Ctrl-F   用于文件名完成。禁用特定完成   注册表中的字符,使用空间值(0x20),因为它不是   一个有效的控制角色。

答案 3 :(得分:1)

TAB在PowerShell中具有特定含义。这是命令完成。因此,如果输入“getch”然后键入TAB。它会将您输入的内容更改为“GetChildItem”(它会更正案例,即使这是不必要的)。

从您的问题来看,看起来TAB完成和命令完成会使TAB键超载。我很确定PowerShell设计师不希望这样。