Programmatically (not manually) finding the path where Git is installed on a Windows system
Solution 1:
If you are inside of (or if you can open) your git bash shell, you can use pwd -W
$ cd / && pwd -W
C:/Program Files (x86)/Git
(I know, this is probably not what you want, and it's quite elementary, but I spent some time to find this, and perhaps it's useful for other people).
Solution 2:
I'm using the following batch file to find out where Git for Windows has been installed:
@echo off
setlocal enabledelayedexpansion
rem Read the Git for Windows installation path from the Registry.
for %%k in (HKCU HKLM) do (
for %%w in (\ \Wow6432Node\) do (
for /f "skip=2 delims=: tokens=1*" %%a in ('reg query "%%k\SOFTWARE%%wMicrosoft\Windows\CurrentVersion\Uninstall\Git_is1" /v InstallLocation 2^> nul') do (
for /f "tokens=3" %%z in ("%%a") do (
set GIT=%%z:%%b
echo Found Git at "!GIT!".
goto FOUND
)
)
)
)
goto NOT_FOUND
:FOUND
rem Make sure Bash is in PATH (for running scripts).
set PATH=%GIT%bin;%PATH%
rem Do something with Git ...
:NOT_FOUND
I should be straight forward to do something similar in .NET. Just remember that you have to explicitly check the 32-bit branch of the Registry if you're on a 64-bit Windows.
Edit: Git for Windows 2.6.1 now additionally writes the CurrentVersion
, InstallPath
and LibexecPath
values to the HKEY_LOCAL_MACHINE\Software\GitForWindows
key.