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


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

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.


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'

Answered By – Knuckle-Dragger

This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply

(*) Required, Your email will not be published