如何在PowerShell中执行外部程序输出的命令补全脚本
在PowerShell中启用命令补全的方法
对应Bash里source <(ex --completion=bash)的操作,PowerShell可以通过以下方式实现:
临时启用(仅当前会话有效)
直接用Invoke-Expression(可简写为iex)执行外部命令输出的补全脚本:
iex (ex --completion=ps)
如果ex不在系统PATH中,需要指定完整路径:
iex (.\path\to\ex --completion=ps)
持久化启用(所有新会话自动加载)
和Bash的.bashrc类似,PowerShell用配置文件$PROFILE保存启动时自动执行的命令:
- 检查配置文件是否存在:
Test-Path $PROFILE
- 若不存在则创建:
New-Item -Path $PROFILE -ItemType File -Force
- 将补全命令添加到配置文件:
Add-Content $PROFILE 'iex (ex --completion=ps)'
或者直接打开配置文件编辑:
notepad $PROFILE
把iex (ex --completion=ps)粘贴进去保存,下次启动PowerShell时补全功能会自动生效。
原理说明
(ex --completion=ps)会执行外部命令并捕获其输出的PowerShell脚本字符串,Invoke-Expression将这个字符串作为PowerShell代码执行,完成补全脚本的加载,效果和Bash的进程替换+source完全一致。
内容的提问来源于stack exchange,提问作者Huw Walters
相关产品推荐
相关产品推荐

