在 PowerShell 中,获取一个命令(或可执行文件)的完整 .exe 路径
在 PowerShell 中,获取一个命令(或可执行文件)的完整.exe路径非常简单。
你可以根据不同的使用场景选择以下几种最常用的方法:
最推荐:Get-Command(或别名gcm)
这是 PowerShell 原生的标准方法。它不仅能查找.exe文件,还能查找别名、函数和脚本。
(Get-Commandnotepad).Source- 缩写版:
(gcm notepad).Source - 输出示例:
C:\Windows\system32\notepad.exe
💡 为什么推荐它?
如果你直接运行Get-Command notepad,它会返回一个对象。我们在外面加个括号并加上.Source,就能直接过滤出纯文本的绝对路径,非常适合放在脚本中赋值给变量。
传统 CMD 习惯:where.exe
如果你习惯了 Linux 的which或者 Windows CMD 的where,在 PowerShell 里你可以直接调用where.exe。
where.exe notepad⚠️ 注意陷阱:
在 PowerShell 中,直接输入where其实是Where-Object(一个用于过滤数据的内置命令)的别名。所以必须带上.exe后缀(写成where.exe),PowerShell 才会去调用系统的查找工具,否则会报错。
查看当前正在运行的进程路径
如果你不是想找某个命令在哪,而是想知道当前已经在运行的某个软件究竟是从哪个盘符、哪个文件夹启动的,可以使用Get-Process(或别名gps):
(Get-Processnotepad).Path- 输出示例:
C:\Windows\System32\notepad.exe
总结
| 场景 | 推荐命令 |
|---|---|
| 在脚本中获取路径并使用 | (Get-Command 命令名).Source |
| 在窗口中随便敲一行快速查看 | where.exe 命令名 |
| 排查某个流氓软件/运行中程序的路径 | (Get-Process 进程名).Path |
