1+ @ echo off
2+ SETLOCAL
3+
4+ :: Use double slash \\ for .reg compatibility
5+
6+ set " ghpath = %localappdata% \GitHubDesktop"
7+ set " ghpath = %ghpath:\ =\\ % "
8+
9+ set ghbin = %ghpath% \\bin
10+ set ghexe = %ghpath% \\GitHubDesktop.exe
11+ set ghbat = %ghbin% \\github.bat
12+
13+ set noshell = %ghbin% \\noshell.vbs
14+ set regcascade = %ghbin% \\github-context-menu--activate-choice.cmd
15+ set regsingle = %ghbin% \\github-context-menu--activate.cmd
16+ set regremove = %ghbin% \\github-context-menu--remove.cmd
17+
18+ mkdir " %ghbin% " > nul 2 >& 1
19+
20+
21+ :: Create noshell.vbs in order to run github.bat silently (to avoid cmd window popup)
22+ echo 'from http://superuser.com/questions/140047 > " %noshell% "
23+ echo If WScript.Arguments.Count ^ > = 1 Then >> " %noshell% "
24+ echo ReDim arr(WScript.Arguments.Count-1) >> " %noshell% "
25+ echo For i = 0 To WScript.Arguments.Count-1 >> " %noshell% "
26+ echo Arg = WScript.Arguments(i) >> " %noshell% "
27+ echo If InStr(Arg, " " ) ^ > 0 or InStr(Arg, " &" ) ^ > 0 Then Arg = chr(34) ^ & Arg ^ & chr(34) >> " %noshell% "
28+ echo arr(i) = Arg >> " %noshell% "
29+ echo Next >> " %noshell% "
30+ echo RunCmd = Join(arr) >> " %noshell% "
31+ echo CreateObject(" Wscript.Shell" ).Run RunCmd, 0 , True >> " %noshell% "
32+ echo End If >> " %noshell% "
33+
34+
35+ :: Create scripts to remove all context menu entries
36+ echo @echo off > " %regremove% "
37+ echo SETLOCAL >> " %regremove% "
38+ echo reg delete " HKEY_CURRENT_USER\Software\Classes\Directory\shell\GitHubDesktopOpenWith" /f 2^ > nul >> " %regremove% "
39+ echo reg delete " HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\GitHubDesktopOpenWith" /f 2^ > nul >> " %regremove% "
40+
41+
42+ :: Create scripts to apply GitHub context menu
43+ echo @echo off > " %regsingle% "
44+ echo set " ghbin=%% ~dp0" >> " %regsingle% "
45+ echo set " ghbin=%% ghbin:\=\\%% " >> " %regsingle% "
46+ echo set " ghexe=%% ghbin%% ..\\GitHubDesktop.exe" >> " %regsingle% "
47+ echo set " ghbat=%% ghbin%% github.bat" >> " %regsingle% "
48+ echo set " noshell=%% ghbin%% noshell.vbs" >> " %regsingle% "
49+ echo : >> " %regsingle% "
50+ echo call " %% ~dp0\github-context-menu--remove.cmd" >> " %regsingle% "
51+ echo : >> " %regsingle% "
52+ echo set rtmp=" %% temp%% \github-context-menu--activate.reg" >> " %regsingle% "
53+ echo : >> " %regsingle% "
54+ echo echo Windows Registry Editor Version 5.00 ^ > %% rtmp%% >> " %regsingle% "
55+ echo echo: ^ > ^ > %% rtmp%% >> " %regsingle% "
56+ echo echo ; Right click on explorer TREE ^ > ^ > %% rtmp%% >> " %regsingle% "
57+ echo echo [HKEY_CURRENT_USER\Software\Classes\Directory\shell\GitHubDesktopOpenWith] ^ > ^ > %% rtmp%% >> " %regsingle% "
58+ echo echo @=" Open with GitHub Desktop" ^ > ^ > %% rtmp%% >> " %regsingle% "
59+ echo echo " Icon" =" %% ghexe%% ,0" ^ > ^ > %% rtmp%% >> " %regsingle% "
60+ echo echo: ^ > ^ > %% rtmp%% >> " %regsingle% "
61+ echo echo [HKEY_CURRENT_USER\Software\Classes\Directory\shell\GitHubDesktopOpenWith\command] ^ > ^ > %% rtmp%% >> " %regsingle% "
62+ echo echo @=" WScript \" %% noshell%% \" \" %% ghbat%% \" open \" %%%% 1\" " ^ > ^ > %% rtmp%% >> " %regsingle% "
63+ echo echo: ^ > ^ > %% rtmp%% >> " %regsingle% "
64+ echo echo ; Right click on explorer main area ^ > ^ > %% rtmp%% >> " %regsingle% "
65+ echo echo [HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\GitHubDesktopOpenWith] ^ > ^ > %% rtmp%% >> " %regsingle% "
66+ echo echo @=" Open with GitHub Desktop" ^ > ^ > %% rtmp%% >> " %regsingle% "
67+ echo echo " Icon" =" %% ghexe%% ,0" ^ > ^ > %% rtmp%% >> " %regsingle% "
68+ echo echo: ^ > ^ > %% rtmp%% >> " %regsingle% "
69+ echo echo [HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\GitHubDesktopOpenWith\command] ^ > ^ > %% rtmp%% >> " %regsingle% "
70+ echo echo @=" WScript \" %% noshell%% \" \" %% ghbat%% \" open \" %%%% V\" " ^ > ^ > %% rtmp%% >> " %regsingle% "
71+ echo : >> " %regsingle% "
72+ echo call reg import " %% rtmp%% " >> " %regsingle% "
73+
74+
75+ :: Create scripts to apply GitHub context menu
76+ echo @echo off > " %regcascade% "
77+ echo set " ghbin=%% ~dp0" >> " %regcascade% "
78+ echo set " ghbin=%% ghbin:\=\\%% " >> " %regcascade% "
79+ echo set " ghexe=%% ghbin%% ..\\GitHubDesktop.exe" >> " %regcascade% "
80+ echo set " ghbat=%% ghbin%% github.bat" >> " %regcascade% "
81+ echo set " noshell=%% ghbin%% noshell.vbs" >> " %regcascade% "
82+ echo : >> " %regcascade% "
83+ echo call " %% ~dp0\github-context-menu--remove.cmd" >> " %regcascade% "
84+ echo : >> " %regcascade% "
85+ echo set rtmp=" %% temp%% \github-context-menu--activate-choice.reg" >> " %regcascade% "
86+ echo : >> " %regcascade% "
87+ echo echo Windows Registry Editor Version 5.00 ^ > %% rtmp%% >> " %regcascade% "
88+ echo echo: ^ > ^ > %% rtmp%% >> " %regcascade% "
89+ echo echo: ^ > ^ > %% rtmp%% >> " %regcascade% "
90+ echo echo ; Top Level item in menu (right click on a folder) ^ > ^ > %% rtmp%% >> " %regcascade% "
91+ echo echo [HKEY_CURRENT_USER\Software\Classes\Directory\shell\GitHubDesktopOpenWith] ^ > ^ > %% rtmp%% >> " %regcascade% "
92+ echo echo " MUIVerb" =" Open with GitHub Desktop" ^ > ^ > %% rtmp%% >> " %regcascade% "
93+ echo echo " Icon" =" %% ghexe%% ,0" ^ > ^ > %% rtmp%% >> " %regcascade% "
94+ echo echo " subcommands" =" " ^ > ^ > %% rtmp%% >> " %regcascade% "
95+ echo echo: ^ > ^ > %% rtmp%% >> " %regcascade% "
96+ echo echo ; First item in submenu ^ > ^ > %% rtmp%% >> " %regcascade% "
97+ echo echo [HKEY_CURRENT_USER\Software\Classes\Directory\shell\GitHubDesktopOpenWith\shell\1GitHubDesktopOpenWith] ^ > ^ > %% rtmp%% >> " %regcascade% "
98+ echo echo @=" Open with GitHub Desktop" ^ > ^ > %% rtmp%% >> " %regcascade% "
99+ echo echo " Icon" =" %% ghexe%% ,0" ^ > ^ > %% rtmp%% >> " %regcascade% "
100+ echo echo " CommandFlags" =dword:00000040 ^ > ^ > %% rtmp%% >> " %regcascade% "
101+ echo echo: ^ > ^ > %% rtmp%% >> " %regcascade% "
102+ echo echo [HKEY_CURRENT_USER\Software\Classes\Directory\shell\GitHubDesktopOpenWith\shell\1GitHubDesktopOpenWith\command] ^ > ^ > %% rtmp%% >> " %regcascade% "
103+ echo echo @=" WScript \" %% noshell%% \" \" %% ghbat%% \" open \" %%%% 1\" " ^ > ^ > %% rtmp%% >> " %regcascade% "
104+ echo echo: ^ > ^ > %% rtmp%% >> " %regcascade% "
105+ echo echo ; Second item in submenu ^ > ^ > %% rtmp%% >> " %regcascade% "
106+ echo echo [HKEY_CURRENT_USER\Software\Classes\Directory\shell\GitHubDesktopOpenWith\shell\2ApplyMenu] ^ > ^ > %% rtmp%% >> " %regcascade% "
107+ echo echo @=" Keep GitHub explorer menu entry" ^ > ^ > %% rtmp%% >> " %regcascade% "
108+ echo echo " Icon" =" SHELL32.dll,296" ^ > ^ > %% rtmp%% >> " %regcascade% "
109+ echo echo: ^ > ^ > %% rtmp%% >> " %regcascade% "
110+ echo echo [HKEY_CURRENT_USER\Software\Classes\Directory\shell\GitHubDesktopOpenWith\shell\2ApplyMenu\command] ^ > ^ > %% rtmp%% >> " %regcascade% "
111+ echo echo @=" WScript \" %% noshell%% \" \" %% ghbin%% github-context-menu--activate.cmd\" " ^ > ^ > %% rtmp%% >> " %regcascade% "
112+ echo echo: ^ > ^ > %% rtmp%% >> " %regcascade% "
113+ echo echo ; Third item in submenu ^ > ^ > %% rtmp%% >> " %regcascade% "
114+ echo echo [HKEY_CURRENT_USER\Software\Classes\Directory\shell\GitHubDesktopOpenWith\shell\3RemoveMenu] ^ > ^ > %% rtmp%% >> " %regcascade% "
115+ echo echo @=" Discard GitHub explorer menu entry" ^ > ^ > %% rtmp%% >> " %regcascade% "
116+ echo echo " Icon" =" SHELL32.dll,131" ^ > ^ > %% rtmp%% >> " %regcascade% "
117+ echo echo: ^ > ^ > %% rtmp%% >> " %regcascade% "
118+ echo echo [HKEY_CURRENT_USER\Software\Classes\Directory\shell\GitHubDesktopOpenWith\shell\3RemoveMenu\command] ^ > ^ > %% rtmp%% >> " %regcascade% "
119+ echo echo @=" WScript \" %% noshell%% \" \" %% ghbin%% github-context-menu--remove.cmd\" " ^ > ^ > %% rtmp%% >> " %regcascade% "
120+ echo echo: ^ > ^ > %% rtmp%% >> " %regcascade% "
121+ echo echo: ^ > ^ > %% rtmp%% >> " %regcascade% "
122+ echo echo ; Top Level item in menu (right click within a folder) ^ > ^ > %% rtmp%% >> " %regcascade% "
123+ echo echo [HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\GitHubDesktopOpenWith] ^ > ^ > %% rtmp%% >> " %regcascade% "
124+ echo echo " MUIVerb" =" Open with GitHub Desktop" ^ > ^ > %% rtmp%% >> " %regcascade% "
125+ echo echo " Icon" =" %% ghexe%% ,0" ^ > ^ > %% rtmp%% >> " %regcascade% "
126+ echo echo " subcommands" =" " ^ > ^ > %% rtmp%% >> " %regcascade% "
127+ echo echo: ^ > ^ > %% rtmp%% >> " %regcascade% "
128+ echo echo ; First item in submenu ^ > ^ > %% rtmp%% >> " %regcascade% "
129+ echo echo [HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\GitHubDesktopOpenWith\shell\1GitHubDesktopOpenWith] ^ > ^ > %% rtmp%% >> " %regcascade% "
130+ echo echo @=" Open with GitHub Desktop" ^ > ^ > %% rtmp%% >> " %regcascade% "
131+ echo echo " Icon" =" %% ghexe%% ,0" ^ > ^ > %% rtmp%% >> " %regcascade% "
132+ echo echo " CommandFlags" =dword:00000040 ^ > ^ > %% rtmp%% >> " %regcascade% "
133+ echo echo: ^ > ^ > %% rtmp%% >> " %regcascade% "
134+ echo echo [HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\GitHubDesktopOpenWith\shell\1GitHubDesktopOpenWith\command] ^ > ^ > %% rtmp%% >> " %regcascade% "
135+ echo echo @=" WScript \" %% noshell%% \" \" %% ghbin%% \" open \" %%%% V\" " ^ > ^ > %% rtmp%% >> " %regcascade% "
136+ echo echo: ^ > ^ > %% rtmp%% >> " %regcascade% "
137+ echo echo ; Second item in submenu ^ > ^ > %% rtmp%% >> " %regcascade% "
138+ echo echo [HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\GitHubDesktopOpenWith\shell\2ApplyMenu] ^ > ^ > %% rtmp%% >> " %regcascade% "
139+ echo echo @=" Keep GitHub explorer menu entry" ^ > ^ > %% rtmp%% >> " %regcascade% "
140+ echo echo " Icon" =" SHELL32.dll,296" ^ > ^ > %% rtmp%% >> " %regcascade% "
141+ echo echo: ^ > ^ > %% rtmp%% >> " %regcascade% "
142+ echo echo [HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\GitHubDesktopOpenWith\shell\2ApplyMenu\command] ^ > ^ > %% rtmp%% >> " %regcascade% "
143+ echo echo @=" WScript \" %% noshell%% \" \" %% ghbin%% github-context-menu--activate.cmd\" " ^ > ^ > %% rtmp%% >> " %regcascade% "
144+ echo echo: ^ > ^ > %% rtmp%% >> " %regcascade% "
145+ echo echo ; Third item in submenu ^ > ^ > %% rtmp%% >> " %regcascade% "
146+ echo echo [HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\GitHubDesktopOpenWith\shell\3RemoveMenu] ^ > ^ > %% rtmp%% >> " %regcascade% "
147+ echo echo @=" Discard GitHub explorer menu entry" ^ > ^ > %% rtmp%% >> " %regcascade% "
148+ echo echo " Icon" =" SHELL32.dll,131" ^ > ^ > %% rtmp%% >> " %regcascade% "
149+ echo echo: ^ > ^ > %% rtmp%% >> " %regcascade% "
150+ echo echo [HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\GitHubDesktopOpenWith\shell\3RemoveMenu\command] ^ > ^ > %% rtmp%% >> " %regcascade% "
151+ echo echo @=" WScript \" %% noshell%% \" \" %% ghbin%% github-context-menu--remove.cmd\" " ^ > ^ > %% rtmp%% >> " %regcascade% "
152+ echo : >> " %regcascade% "
153+ echo call reg import " %% rtmp%% " >> " %regcascade% "
154+
155+
156+ call " %regcascade% "
0 commit comments