前言

随着PowerShell的兴起和不断完善,在Windows中的Shell体验不断的改进。但是之前有好多东西依然没有太大的改进。例如说之前我们在CMD或者PowerShell中要执行之前执行过的命令或者Cmdlet时需要使用↑,↓这两个方向键拼命的寻找。如果是之前敲入了过多的命令,找起来是很不方便的。甚至有时候都不如再敲一遍来的划算,但是我们的大脑是抗拒这样的事情的,如果能通过简单的上下键找到,干嘛要费脑子去再敲一遍呢?尤其是那行代码看起来不算短,参数也不算少的时候。这时候我们会想要是能想天底下最强大的IDE那样有智能提示该多好?哪怕不用太智能,至少有个自动匹配也行。

Windows粉们的福音

Set-PSReadlineOption -PredictionSource History

一个偶然的机会让我发现了一个命令,Set-PSReadlineOption。不要问我怎么发现的,痛过才知道。

通过这个命令可以设置PowerShell的智能提示。先上命令:

Set-PSReadLineOption -PredictionSource History

没错就是这么的简单,设置这个命令之后你就可以像在IDE里面编程一样,让你的PowerShell能根据你输入的内容进行一个只能提示。

是不是很神奇呢?这样可以大大节省我们按上下键的次数,而且可以很清楚看到我们之前输入的命令。如果是我们想要的,那么再按一次→键即可输入原来的内容,然后回车即可执行。

这个Cmdlet在PowerShell 5的时候就已经有了,奈何没有-PredictionSource选项。所以如果要使用这个功能最好是把你的PowerShell升级到7.1或者最新版。

这个是如何做到的呢? 其实我们在命令行里执行的代码默认都会被保存到一个文件中。再开启-PredictionSource选项之后PowerShell会去解析这个文件,然后每次回根据用户的输入进行匹配。再将匹配到的内容提示出来供用户选择。

我们可以使用Get-PSReadlineOption查看具体的history文件路径,也可以通过Set-PSReadlineOption命令来修改这个路径。

Set-PSReadLineOption -ShowToolTips

上一小节介绍的是针对我们自己已经输入过的命令可以通过-PredictionSource选项来开启。那么如果是之前从来没有输入过的命令呢?

这个时候我们需要另外一个选项来打开 -ShowToolTips

Set-PSReadLineOption -ShowToolTips

这样的话当前的PowerShell已经加载的模块里面的Cmdlet在我们输入的时候都能提示。

设置自动开启 

遗憾的是这些选项在默认情况下是不开启的。我们如何让在启动PowerShell的时候自动开启呢?

最简单的方法找到PowerShell的快捷方式,然后在快捷方式的目标那一栏加入下面的参数:

-c "&{  Set-PSReadLineOption -PredictionSource History -ShowToolTips}"

比如我的机器上完整的内容如下:

"C:\Program Files\PowerShell\7\pwsh.exe" -noe -c "&{  Set-PSReadLineOption -PredictionSource History -ShowToolTips}"  -WorkingDirectory ~

然后保存。这样以后每次启动PowerShell之后都能拥有智能提示的功能。 

当然有没有别的一劳永逸的方法呢?留给大家去探索了^_^

小结

1. 通过set-PSReadlineOption可以设置对历史输入命令和当前加载命令的提示

2. 通过Get-PSReadlineOption可以查看历史命令的保存路径

3. 智能提示默认是关闭的,可以通过修改快捷方式来使其自动开启


整理了部分近期发布的文章仅供大家参考:

  1. 为什么大神们的文章看起来那么酷?除了写的好还使用了生动的动图(gif)。一款【免费】的动图工具screentogif了解一下
  2. Powershell:使用PSCustomObject,序列化执行结果
  3. PowerShell: 为啥大神们的PowerShell窗口还有智能提示?因为他设置了这个
  4. PowerShell: 远程管理除了知道Invoke-Command,还应该掌握Enter-PSSession这个命令
  5. PowerShell: RDP管理服务器效率低下,使用invoke-command同时维护多台服务器不再难
  6. PowerShell: 用原生PowerShell就能解决访问web资源时的ADFS认证问题
  7. PowerShell: 不需要学Python,使用powershell也能处理Excel提高办公效率
  8. PowerShell: 作为一个PowerShell菜鸟,如何快速入门?掌握这些就够了
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐