2019年2月10日日曜日

PowerShellで、プロファイルのフォルダを簡単に開きたい

node.jsによって、簡単なコンソールアプリもJavaScript(しかも最新仕様)で書けるようになっている・・・とは言え、やはりシェルスクリプトも変わりなく重要です。

たとえば、PowerShellの初期実行コマンドを記述している「Microsoft.PowerShell_profile.ps1」ですが、その格納先を知りたい時は普通に「$PROFILE」コマンドで良いのですが、場所を知るだけでなく、その場所をもうエクスプローラーで開きたい!というのをスクリプトで書いてみます。



II (SPLIT-PATH $PROFILE)

↑これだけでOK。

IIはInvoke-Itemの略で、フルで書いてももちろんokですが長いです。

$PROFILEはプロファイルの場所とファイル名をフルパスで返してきます。

SPLIT-PATHは、$PROFILEの返してくるフルパスからファイル名だけを除外してパスだけをテキストで取得出来ます。

組み合わせるとプロファイルが格納されたフォルダを開くようになります。


↑実行すると、こんな感じで一発でプロファイルの格納されたフォルダが開きます。

Invoke-Itemは本当に便利で、シェルスクリプトでフォルダーを取得したら、そこを開く・・・というアクションを簡潔に記述できます。

ちなみにフォルダを開くだけでなく、アプリケーションと紐づけてあるファイル名まで指定すると、そのファイルを自動で開く事も可能です。



II $PROFILE

↑たとえば、SPLIT-PATHを外すと、*.PS1ファイルまで含んでInvoke-Itemにオブジェクトが渡されますね。


↑すると、私の場合は、*.ps1ファイルをVS Codeで開くように紐づけてあるため、直接Microsoft.PowerShell_profile.ps1がVS Codeで開きます。


ちなみにオプションの-WHATIFを付けると、実行せず、どんな動きをするのかの解説を読む事が出来ます。

なんかnode.jsとPowerShellだけでもごっついというか、かなり面白いですよね。