エクスプローラで背景を右クリックした時のコンテキストメニューをいじる

レジストリキー

HKEY_CLASSES_ROOT\Directory\Background\shell

サンプル

1. これはどんなサンプル?

git pull を実行できるようにしてみる。

2. レジストリはどういじる?

regファイルのフォーマットだけどこんな感じ。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\git_pull]
@="git pull"

[HKEY_CLASSES_ROOT\Directory\Background\shell\git_pull\command]
@="\"D:\\work\\github\\stakiran\\contextmenu\\gitpull.bat\" %V"

重要なのは %V が必要であること。これがないと「どこのフォルダで右クリックされたのか」という情報が渡されない。

3. gitpull.batってどんなん?

こんなん。

git pull する前に対象ディレクトリに移動するのと、終わった後にもとに戻るのをかましてる。

@echo off
setlocal

pushd %cd%
echo git pull...
git pull
popd

timeout 3

%V で渡された値には %cd% でアクセスできる。これは想像だけど、%V は「右クリックされたフォルダをカレントディレクトリにする」的な効果があるんだと思う?