以前紹介した通り、私は 複数のファンクションを含む モジュールなど、ある程度規模が大きいスクリプト開発には 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円超えですか...
- ISESteroidsTM Private Edition: で 9000円超え
うにゅん、結構な価格ですにぇ。
今回は トライアルで触ってみましょう。
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
に配置してみましょう。
PowerShell ISE の起動
モジュールを配置したら、Powershell ISE を起動してください。 Windows 8.1 なら以下のような方法ですね。
- 方法1. Win + r で PowerShell_ISE と入力して実行
- 方法2. powershell を起動して ise で呼び出す
ISESteroids の実行
PowerShell ISE が起動したら、以下のコマンドでモジュールが読み込まれて開始します。初回では、ライセンス表示がポップアップします。
Import-Module ISESteroids -Verbose
あるいは、以下でもいいですね。
Start-Steroids
実行するとどうなるの
簡単に使ってみた結果、見えた機能です。HPにまとまってないのでショウガナイ。
実行時の変化
PowerShell ISEは、標準ではこのようになっています。
ISESteroids を読み込むと上部に検索窓が追加されるのがわかります。
変数のキャプチャ
変数で右クリックすると monitor
というメニューがコンテキストに追加されています。
実行すると、ISE の右側にあった Command タブに、Variables タブが追加されます。
ここに選んだ変数がモニターされて、実際に変数に格納するとキャプチャされるのがわかります。
ハイライト表示
PowerShell ISE は標準で、変数や文字列、ファンクションなどの シンタックスハイライトはされます。
ISESteroids を入れると、さらに parameterキーワードや [] 、あるいは () や {} などブロックとみなされる箇所がハイライト表示されます。
これは、 ファンクションを書いていて Parameter() のハイライトに助かりますね。
ファンクション一覧の取得
PowerShell ISE のタブのすぐ下に、現在カーソルがある箇所のファンクションが表示されたり、
スクリプトに記述されているファンクションが一覧取得できます。
変数やファンクションを指定したり、正規表現を用いた検索機能
ファンクション名一覧の横には、スクリプトの検索窓があります。
ここでは 変数(variables)やファンクション名に絞った検索などが可能です。例えば、 inputcode という変数を検索すると、スクリプト内の該当箇所がハイライトされます。
メニューバーの追加
見慣れぬメニューバーが追加されます。
いろいろ触ってみるとわかりますが、 証明書サインがここからできたり、変数モニタータブを追加したりなど便利です。
PowerShell ISE に簡単なコード整形
文字寄せ程度ですが、コード整形もできます。
例えば縦がずれたここで、Align Assignment Operators を選択すると
縦がそろいます。
他にも、選択部分の縦をそろえたりもできます。
警告表示などのコード入力サポート
コードの波線部分を選択すると、 ISE のステータスバーに警告内容が表示されます。
さらに、右クリックすることで、修正候補が出ます。やったー。
修正も選ぶだけです。
ステータスバーの説明にある ReadMore からは、なぜそうしたほうがいいのかのページに飛びます。
オートコンプリート
メニューバーの、
アイコンを選択すると、オートコンプリートメニューがでます。
ISESteroids の 標準で有効ですが、{
をいれると 自動的に {}
に補完されるなど補助をしてくれます。
プロファイルの中身を開く
メニューの File から、$profile に記述された内容を呼び出すことができるようになります。
$profile などに function をたくさん書いたりしてる人にはうれしいでしょうね。
選択部分の ファンクション化
おなじみのアレですね。
選択した部分を function に切りだしてくれます。
例えば、切り出したい部分を選択してTurn Into Function
を選択
function名やパラメータを設定します。
ほらできた。
うーん、便利。
MSDN や about_help へのリンク
.NET な部分を右クリックすると msdn の該当ページにリンクされます。
Operator では about_operator が表示されます。
ILSpy でのデコンパイル
右クリックメニューの Source Code
からは、 ILSpy でのコード表示もできます。
これを使えば PowerShell Cmdlet のデコンパイルも可能です。そう、まだ Referenceサイトでも公開されてないのが簡単に見れるのは素晴らしい....!
たとえば Get-ChildItem
なら
やったね。
ライセンスの購入と有効化
ライセンスは、My-Commerce から購入となります。ドメイン参加PCは、ISESteroidsTM Professional しか動かいので、今回はこれです。
オーダー完了後は、ISESteroids_Professional.license として、ライセンスファイルがダウンロードできます。
あとは、Show-SteroidsLicense でライセンスを入れたり、確認したりしましょう。
簡単にやるなら、
- ISESteroids をおいたモジュールフォルダのLicense フォルダに、ダウンロードしたライセンスファイルを置きます
- PowerShell ISE を新規起動して、
Start-Steroids
を実行します Show-SteroidsLicense
でライセンスが ISESteroids Professional(active license) に変わっていれば ok です
どうやら ユーザーライセンスですが、 2台まででもあるようですね。
ISESteroids のオプション設定
以下のパスに xml 形式で保存されています。*4
$env:APPDATA\ISESteroids # explorer からの場合 %APPDATA%\ISESteroids
開いてみるとこうです。
VS で開いてもいいですね。
ここで インテンドサイズが 既定で 2なのを
<IndentSize>2</IndentSize>
4 スペース相当に変更できます。
<IndentSize>4</IndentSize>
まとめ
未実装ですが、 変数のリネームなどもメニューにあるようです。有料..... んー、体験版を使う限りいい感じの機能が多いですねー。 PowerSheller なアナタ。どうでしょうか。*5
リファクタリングや、ファンクションの切りだし、変数などの安全な変更は、PowerShell Tools for Visual Studio にも実装されるとうれしいです!
高いのか、安いのか。んー。私は会社で買ってほしいですね! *6