「エクスプローラを開く」コマンドを作る

Windowsのエクスプローラと言えば、ゆとりエンジニアの強い味方とも言えるファイラです。
Windowsでコマンドラインを使っていて、時々カレントディレクトリでエクスプローラを開きたくなることがあります。

要はexplorer .を打てばいいのですが、タイプしにくいのです(私だけ?)。
# 今書いている最中もタイポしました
素のコマンドプロンプトだと補完機能もないのでうんざりします。

そこで登場するのがスクリプト。Windowsだとバッチファイル(拡張子.bat.cmd)ですね。
バッチスクリプト(WSH)自体は昔からありますしこなれているのですが、いかんせん構文が古く覚える気力が湧きません。たまに社内ツールで目にしますが、VBスクリプト職人が書いたスクリプトは自分でカスタマイズできる気がしません。

そこでPowerShellを呼ぶようにすると、Powershellや.NETの知識を使えるので、できることが広がる気がします。また、環境変数Pathにパスを通しておき、いつでも使えるようにすると便利です。
ここでは大したことをしていませんが、他にも自作のコマンドを作るときは同じやり方が使えます。自分で育てるコマンドツールには愛着もわくというものです。

Explorerで開く

ここで作成したバッチは次のようなものです。
exp.cmdという名前で保存しておきます。

引数(%1で参照)が指定されていなければ現在のパス(カレントディレクトリ)でエクスプローラを開きます。引数が指定されている場合はexplorer.exeコマンドと同じように動作します。

環境変数の追加

環境変数Pathを設定しておくと、バッチファイル名(この例ではexp)でスクリプトを実行できます。
念のためバッチファイルが他のコマンド名と重複しないよう注意して下さい。
setコマンドで一時的に設定してもいいのですが、ここでは永続的に設定する例を記載しておきます。

setxコマンドを使って永続化する場合は下記のようにします。

GUIでやりたい場合は、「コントロールパネル」>「システム」>「システムの詳細設定」と辿るか、以下を「ファイル名を指定して実行」ダイアログ(Windowsキー+R)またはコマンドプロンプトに入力して起動します。

ユーザー環境変数のほうのPathに追加するのが無難でしょう。

環境変数Pathに上記バッチファイルが格納されているディレクトリを追加しておきます。環境変数を変更した後は、変更を反映させるためにコマンドプロンプトを再度起動するなどする必要があります。
whereコマンドを使うと、パスが通っているか確認できます。

パスが通っていれば今回作成したexpコマンドが使えるはず。タイポしやすい実行ファイル名よりも短い名前で起動できますね。

ExplorerかAtomで開く

もうちょっとPowershellっぽい例に変更してみましょう。
下記の例ではexp.cmdバッチファイルのうち、引数を渡さない場合の挙動を変更しています。現在のディレクトリ直下に.gitサブディレクトリがあるかを調べ、存在する場合(=Gitローカルレポジトリと想定)はAtomで開きます。

このように単純な例ならば、コマンドレット文をPowershellに渡せばわざわざPowerShellスクリプトを書くことなく実行できますね。