以下の内容はhttps://tech.guitarrapc.com/entry/2014/03/28/070501より取得しました。


PowerShell ISE への アドオン ISESteroids を使ってみる

以前紹介した通り、私は複数のファンクションを含むモジュールなど、ある程度規模が大きいスクリプト開発にはVisual Studio 2013 + PowerShell Tools for Visual Studioを利用しています。

なぜISEでモジュールなど、規模の大きいスクリプトを書かないかというと、デバッグやファイルを横断した操作、プロジェクトシステム、そしてVisual Studioでの開発に一元化したいためです。

もちろん、さくっとスクリプトを書いたり、実行、デバッグなどはPowerShell ISE*1 を利用しています。

ただ、標準のPowerShell ISEにはスクリプト開発に欲しい機能がまだまだ多くあります。

  • 変数の状態が可視化
  • ファンクションの一覧取得
  • コード整形機能
  • シンタックスハイライトの強化

先日2014/3/27についに β版から正式リリースされたISESteroidsは、そんなPowerShell ISEに機能を追加し、よりスクリプト開発をしやすくするためのアドオンです。

早速どんなものなのかを見てみましょう。

ISESteroids の概要

ISESteroids は PowerShell ISE へのアドオン

ISESteroidsは、ドイツのDr. Tobias Weltnerによって開発されているバイナリモジュールです。

このモジュールを利用することで、PowerShell ISEで以下をはじめとする恩恵を得ることができます。

  • 変数のキャプチャ
  • ハイライト表示
  • ファンクション一覧の取得
  • 変数やファンクションを指定したり、正規表現を用いた検索機能
  • メニューバーの追加
  • PowerShell ISEに簡単なコード整形
  • 警告表示などのコード入力サポート
  • オートコンプリート
  • プロファイルの中身を開く
  • 選択部分のファンクション化
  • MSDNやabout_helpへのリンク
  • ILSpyでのデコンパイル

早速、ざっと見てみましょう。

ISESteroids

氏のホームページで公開されています。

動作環境

PowerShell 3.0か4.0のPowerShell ISEで動作します。

ライセンス

本アドオンは、ユーザーライセンスがいります。が、トライアルとして10日間利用できます。詳しくは氏のHPで。*2

  • ISESteroidsTM Professional: で15000円超え

image

  • ISESteroidsTM Private Edition: で9000円超え

image

うにゅん、結構な価格です。

今回はトライアルで触ってみましょう。

PowerShell ISE で利用するまでの流れ

簡単にインストール手順を見てみましょう。

外部スクリプトを実行できるように権限を設定する。

前提として、 PowerShellで外部スクリプトを読み込めるようにExecutionPolicyを変更しておいてください。

例えば、ローカルで作成したps1は実行可能で、ダウンロードしたps1 *3 は実行できないようにするならRemoteSignedです。

Set-ExecutionPolicy RemoteSigned

ISESteroids の ダウンロード

まずは、氏のホームページからモジュールをダウンロードします。

ページ下部にあるISESteroidsから2014/Mar/28現在v1.0.0がダウンロード可能です。

モジュールへの配置

ダウンロードしたzipファイルを解凍して、モジュールパス ($env:PSModulePath) のいずれかに配置します。

今回は、 %UserProfile%\Documents\WindowsPowerShell\Modulesに配置してみましょう。

image

PowerShell ISE の起動

モジュールを配置したら、Powershell ISEを起動してください。 Windows 8.1なら以下のような方法ですね。

  • 方法1. Win + rでPowerShell_ISEと入力して実行
  • 方法2. powershellを起動してiseで呼び出す

ISESteroids の実行

PowerShell ISEが起動したら、以下のコマンドでモジュールが読み込まれて開始します。初回では、ライセンス表示がポップアップします。

Import-Module ISESteroids -Verbose

あるいは、以下でもいいですね。

Start-Steroids

image

実行するとどうなるの

簡単に使ってみた結果、見えた機能です。HPにまとまってないのでショウガナイ。

実行時の変化

PowerShell ISEは、標準ではこのようになっています。

image

ISESteroidsを読み込むと上部に検索窓が追加されます。

image

変数のキャプチャ

変数で右クリックするとmonitorというメニューがコンテキストに追加されています。

image

実行すると、ISEの右側にあったCommandタブへVariablesタブが追加されます。

image

ここに選んだ変数がモニターされて、実際に変数に格納するとキャプチャされるのがわかります。

image

ハイライト表示

PowerShell ISEは標準で、変数や文字列、ファンクションなどのシンタックスハイライトはされます。

ISESteroidsを入れると、さらにparameterキーワードや[]、あるいは () や {} などブロックとみなされる箇所がハイライト表示されます。

これは、 ファンクションを書いていてParameter() のハイライトに助かりますね。

image

image

image

ファンクション一覧の取得

PowerShell ISEのタブのすぐ下に、現在カーソルがある箇所のファンクションが表示されたり、

image

スクリプトに記述されているファンクションが一覧取得できます。

image

変数やファンクションを指定したり、正規表現を用いた検索機能

ファンクション名一覧の横には、スクリプトの検索窓があります。

ここでは変数(variables)やファンクション名に絞った検索などが可能です。例えば、 inputcodeという変数を検索すると、スクリプト内の該当箇所がハイライトされます。

image

メニューバーの追加

見慣れぬメニューバーが追加されます。

image

いろいろ触ってみるとわかりますが、 証明書サインがここからできたり、変数モニタータブを追加したりなど便利です。

PowerShell ISE に簡単なコード整形

文字寄せ程度ですが、コード整形もできます。

例えば縦がずれたここで、Align Assignment Operatorsを選択すると

image

縦がそろいます。 image

他にも、選択部分の縦をそろえたりもできます。

image

警告表示などのコード入力サポート

コードの波線部分を選択すると、 ISEのステータスバーに警告内容が表示されます。

さらに、右クリックすることで、修正候補が出ます。やったー。

image

修正も選ぶだけです。

image

ステータスバーの説明にあるReadMoreからは、なぜそうしたほうがいいのかのページに飛びます。

image

オートコンプリート

メニューバーの、

image

アイコンを選択すると、オートコンプリートメニューがでます。

image

ISESteroidsの標準で有効ですが、{をいれると自動的に{}に補完されるなど補助をしてくれます。

image

プロファイルの中身を開く

メニューのFileから、$profileに記述された内容を呼び出すことができるようになります。

image

$profileなどにfunctionをたくさん書いたりしてる人にはうれしいでしょうね。

選択部分の ファンクション化

おなじみのアレですね。

選択した部分をfunctionに切りだしてくれます。

例えば、切り出したい部分を選択してTurn Into Functionを選択

image

function名やパラメータを設定します。

image

ほらできた。

image

うーん、便利。

MSDN や about_help へのリンク

.NETな部分を右クリックするとmsdnの該当ページにリンクされます。

image

image

Operatorではabout_operatorが表示されます。

image

image

ILSpy でのデコンパイル

右クリックメニューのSource Codeからは、 ILSpyでのコード表示もできます。

これを使えばPowerShell Cmdletのデコンパイルも可能です。そう、まだReferenceサイトでも公開されてないのが簡単に見られるのは素晴らしい....!

たとえばGet-ChildItemなら

image

やったね。

image

ライセンスの購入と有効化

ライセンスは、My-Commerceから購入となります。ドメイン参加PCは、ISESteroidsTM Professionalしか動かいので、今回はこれです。

オーダー完了後は、ISESteroids_Professional.licenseとして、ライセンスファイルがダウンロードできます。

あとは、Show-SteroidsLicenseでライセンスを入れたり、確認したりしましょう。

簡単にやるなら、

  1. ISESteroidsをおいたモジュールフォルダのLicenseフォルダに、ダウンロードしたライセンスファイルを配置
  2. PowerShell ISEを新規起動して、 Start-Steroidsを実行
  3. Show-SteroidsLicenseでライセンスがISESteroids Professional(active license) に変わっていればok

image

どうやらユーザーライセンスですが、 2台まででもあるようですね。

ISESteroids のオプション設定

以下のパスにxml形式で保存されています。*4

$env:APPDATA\ISESteroids

# explorer からの場合
%APPDATA%\ISESteroids

image

開いてみるとこうです。

image

VSで開いてもいいですね。

image

ここでインテンドサイズがデフォルトで2なのを

<IndentSize>2</IndentSize>

4スペース相当に変更できます。

<IndentSize>4</IndentSize>

まとめ

未実装ですが、 変数のリネームなどもメニューにあるようです。有料..... んー、体験版を使う限りいい感じの機能が多いですねー。 PowerShellerなアナタ。どうでしょうか。*5

リファクタリングや、ファンクションの切りだし、変数などの安全な変更は、PowerShell Tools for Visual Studioにも実装されるとうれしいです!

高いのか、安いのか。んー。私は会社で買ってほしいですね! *6

*1:Windows 7以降は標準でついてくる統合スクリプト開発環境 - Integrated Scripting Environment。

*2:Microsoft MVPだったり会社利用での割引もあるみたいですよ

*3:スクリプトファイルps1のゾーン情報がブロックになっているもの

*4:まだGUIでの提供はない

*5:だるやなぎせんせーがPowerShellを書くと聞いて参考までにこの記事を書きました。

*6:もっとうれしいのはVS版で同等程度の機能があれば絶対買います。速攻買います。




以上の内容はhttps://tech.guitarrapc.com/entry/2014/03/28/070501より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14