【问题标题】:Get full path of a program in cmd line在 cmd 行中获取程序的完整路径
【发布时间】:2015-03-24 23:21:51
【问题描述】:

我有多个活动路径,当我运行以下行时

c:\> myProg.exe

myProg.exe 执行,但我不知道它的实际位置。

是否有任何命令行工具可以帮助我反向查找 myProg 所在的物理文件夹?

【问题讨论】:

标签: batch-file cmd


【解决方案1】:

很简单

where myprog.exe

例如

where ping

结果:

C:\Windows\System32\PING.EXE

【讨论】:

  • 不幸的是,WHERE 列出了所有匹配的路径 - 它并没有告诉您实际执行哪个路径。此外,它不识别内部命令。
  • 你好 @dbenham 总是以简单的方式存在,你的 bat 文件非常复杂 Start-Process -PassThru powershell.exe | Get-Process -Module 这个简单的 powershell 脚本运行“进程”获取进程和子进程
  • 但是如果你想得到答案而不实际运行命令怎么办。该命令具有破坏性的潜力,或者它可能是一种资源消耗。我的批处理脚本的部分复杂性是在不实际运行命令的情况下获得答案(使用内部命令的帮助选项除外)。此外,我的脚本明确地用于 CMD.EXE 环境,因此它能够检测内部命令。
  • @dbenham 问题是它的实际位置 where 命令定位 exe 文件不完整的答案?我只是尝试解决他的问题,即找到 exe 文件的确切位置,而不是更多获取子进程使用我评论的最后一个脚本
  • 放松,这是一个很好的答案。我只是指出一些限制。
【解决方案2】:

您可以使用以下方法找到应用程序完整路径:

for %i in (ping.exe) do @echo.%~$PATH:i

【讨论】:

  • 这将无法检测当前目录中的文件(除非当前目录也在 PATH 中)。此外,这无法识别内部命令。
猜你喜欢
  • 1970-01-01
  • 2011-09-30
  • 1970-01-01
  • 2017-03-16
  • 2014-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多