Detecting if a program is installed and where using cmd.exe

13,852

Take a look at this registry key.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

In it you will find something similar to this for firefox.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe]
@="C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"
"Path"="C:\\Program Files (x86)\\Mozilla Firefox"

and here is a bit that reads the value from Powershell. Same thing can be done from batch file with reg.exe.

$Firepath = get-item -path 'registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe'
$Firepath.GetValue('')
Share:
13,852
Nowayz
Author by

Nowayz

Updated on June 17, 2022

Comments

  • Nowayz
    Nowayz almost 2 years

    Windows has the program start.exe which somehow knows how to open programs by their lay-name like "firefox"

    Typing start firefox into cmd.exe opens firefox assuming its installed. Is there a similar command to start that will return the file path rather than starting the application?

    Also open to any similar but proper solution

    UPDATE: Other answers suggest using where command, and this works for programs like ping which are in the system directories, but does not find firefox like start does.

  • Nowayz
    Nowayz about 10 years
    I searched for awhile and never found these keys! Thank you so much. This contains exactly what I was looking for.
  • Burkart
    Burkart about 2 years
    The mentioned reg.exe command is reg.exe query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe" /v Path and requires additional output parsing.