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('')
Author by
Nowayz
Updated on June 17, 2022Comments
-
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 likestart
does. -
Nowayz about 10 yearsI searched for awhile and never found these keys! Thank you so much. This contains exactly what I was looking for.
-
Burkart about 2 yearsThe mentioned reg.exe command is
reg.exe query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe" /v Path
and requires additional output parsing.