エクスプローラからGOPATHを設定した状態でコマンドプロンプトを起動する

go言語において各種コマンドを実行する際には、GOPATHという環境変数が設定されている事が望ましい訳です。

絶賛WindowsユーザですのでCUIは余り好まないのですけども、全てをGUIで操作出来る訳でもない状況でありますので、Windows標準のファイラーであるところのエクスプローラをレジストリを弄って拡張します。

まずはGOPATHを設定するシェルスクリプトを記述します。

runwithgo.cmdというファイル名で好きなディレクトリにテキストファイルを作成します。

内容としては以下のようにします。

@echo off
set GOPATH=%1  
set PATH=%GOPATH%\bin;%PATH%  
cd %1  
@for /f "tokens=3,4 delims= " %%a in ('go version') do @title %GOPATH%@%%a %%b&@echo %%a %%b

次にエクスプローラを拡張する為のレジストリファイルを作成します。

gopath.regというファイル名で好きなディレクトリにテキストファイルを作成します。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\go]
@="ここをGOPATHにする"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\go\command]
@="cmd /k \"C:\\development\\go\\runwithgo.cmd %1\""

このファイルはUnicodeで保存して下さい。

ここをGOPATHにするの部分は自分で分かり易い様にして下さい。

下段のファイルパスは、先ほど作成したrunwithgo.cmdを保存したパスを絶対パスで指定して下さい。

\をエスケープするのを忘れたり、パスの中に半角スペースが含まれていると大体酷い事になるので、その様な事が無いように気を付けて下さい。

最後に、gopath.regをダブルクリックして結合して下さい。

上手くいくと以下の様にエクスプローラにメニューを追加できます。

add_GOPATH

タイトルに、goのバージョンと現在のGOPATHが設定された状態でコマンドプロンプトが起動します。 prompt