Windows系统如何查询所有可用的命令别名?
Windows系统查询全量可用命令别名/调用名的方法
首先要明确:默认PowerShell的Get-Alias仅能查询PowerShell预定义或手动配置的原生别名,不会覆盖你提到的python3、jupyter-notebook这类第三方工具的可执行调用名,要获取全量可直接调用的命令,可参考以下方案:
PowerShell环境(覆盖最全面,推荐使用)
执行以下命令即可同时查询PowerShell原生别名、PATH路径下的可执行程序/脚本、系统注册的应用调用名:
Get-Command * | Where-Object {$_.CommandType -in 'Alias','Application','ExternalScript'} | Select-Object Name,CommandType,Source
输出项的CommandType对应不同的命令类型:
Alias:PowerShell原生别名,比如cd对应Set-Location、ls对应Get-ChildItemApplication:系统可直接调用的外部可执行程序,你要找的python3、jupyter-notebook都属于该分类ExternalScript:PATH路径下可直接调用的脚本文件,比如.bat、.cmd、.ps1格式的可执行脚本
如果只需要查看第三方工具的调用名,可以单独过滤Application类型:
Get-Command -CommandType Application | Select-Object Name,Source
需要导出结果到本地文件的话,在命令末尾追加| Out-File -FilePath C:\可用命令列表.txt -Encoding UTF8即可。
CMD环境
CMD没有原生的全量命令查询能力,可按需求用以下方法:
- 仅查询CMD下通过doskey设置的别名:执行
doskey /macros - 查询PATH路径下所有可执行的外部程序名:执行以下命令
@for %e in (%PATHEXT%) do @for %i in (*%e) do @if not "%~$PATH:i"=="" @echo %~ni
该方法不会覆盖系统注册在App Paths里的应用调用名,查询完整性不如PowerShell方案。
小技巧
要单独查询某一个命令的实际指向路径,PowerShell和CMD都可以直接执行where 命令名,比如where python3即可看到python3对应的实际程序所在路径。
内容的提问来源于stack exchange,提问作者Wick
相关产品推荐
相关产品推荐

