PowerShellの開発速度の改善を考える
公開日 更新日 2020/09/16
私はどちらかというとWindowよりもUNIXの方がなれてますが、仕事ではWindowsをメインに使ってることもあり、なれてなくてもアウトプットを出す必要があります。
そのためにはWindowsでの作業効率を改善しなければならず、これには普段の定型作業の自動化ははずすことはできません。
必然的にプログラムを組むことになりますが、簡単に作りたいので、「標準提供」「スクリプト言語」という特性を持つPowerShellをしばらく使ってます。
本日は入門後しばらく経験した中からPowerShellでの開発速度の改善になったポイントを紹介したいと思います。
開発環境
PowerShell 3.0以降であれば標準でPowerShellのための開発環境であるPowerShell ISEが提供されています。
メモ帳などのテキストエディタでも問題ないのですが、PowerShell ISEなら、開発効率をぐっと向上させることの出来る支援機能が使えます。
PowerShell ISEの提供機能については、ざっくりと抜粋すると以下のような機能があります。
- タブ補完機能
命令を数文字入力してTABキーを入力すると、その数文字から始まる候補を表示してくれるので途中で欲しい綴りのコマンドが入力できてしまいます。
個人的な感覚ですが、タイプしなければならない文字数は平均で60%前後ぐらいまで減らすことが出来ているような気がしており、かなり改善していると思います。 - デバッグ時のステップ実行機能
Java開発ならEclipseで日常出来て当然のなじみのある機能ですが、PowerShell ISEでも出来ちゃいます。
スクリプト言語なのでゴリゴリと動かしながらのトライ&エラーでもそれなりの効率をたたき出すことは可能です。
しかしながら、デバッグ時にステップ実行出来ると、手を動かさなくても動作を把握できるのでかなり作業が捗ります。 - デバッグ時のブレークポイント機能
こちらもEclipseなら当然ですが、なんとPowerShellではスクリプト中にブレークポイントを仕掛けることが可能なのです!
一手間増えますが、Set-PSBreakpoint命令を使ってどちらかというとプログラムするといった使い方。 - 任意のタイミングで実行可能
スクリプト言語なのでコンパイルすることなく実行確認が可能なのは当たり前なのですが、PowerShellプロンプトを開くことなくF5キーを押すとすぐに実行確認が出来ます。
このおかげで複数ウインドウを開く必要がなくなり、ウインドウが埋もれて迷子になるということがなくなりますね。
エイリアス機能
エイリアス機能とは、PowerShellの命令を別の短い文字列に置き換えて使うことが可能になるというもので、まさにUNIXのaliasと同じ働きがあります。
エイリアス機能についてはこちらのサイトに説明があります。
PowerShell ISEを導入するとタブ補完機能でタイプ量を減らすことが可能ですが、エイリアス機能を使うと抜本的な入力量の削減が可能になるわけです。
さらに、エイリアス機能の場合は入力時だけでなく完成したソースコードも長ったらしい命令がなくなってスッキリと見やすくなるという効果もあります。
エイリアス機能の対象は、PowerShellが標準で提供するエイリアスと、使用者が付け足すことが出来るエイリアスの2種類あります。
付け足すといくらでも好きなように組み立てられますが、私はどこへ行ってもマシンに左右されず即使えるほうがうれしいので、意識して標準で提供されるエイリアスのみを使うようにしています。
標準のエイリアスは次のコマンドを実行するとリストアップすることが出来ます。
lsとかmvとかUNIXっぽいつづりのコマンドがありますが、意識してたのでしょうか。
ループで使われるForEach-Objectも「%」1文字で「%{ … }」という書き方が通用するようになってます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
PS C:\> Get-Alias CommandType Name Definition ----------- ---- ---------- Alias % ForEach-Object Alias ? Where-Object Alias ac Add-Content Alias asnp Add-PSSnapIn Alias cat Get-Content Alias cd Set-Location Alias chdir Set-Location Alias clc Clear-Content Alias clear Clear-Host : |
参考情報
参考情報としては、Microsoftのサイトで検索するのが一番答えに近いようです。
イキナリ話が飛びましたが、いかんせんPowerShellの場合はWEBを検索してもリソースが不足しているんです。
英語リソースでよければStackOverflowなどでも情報は多く参考になるのですが、すべて英語だと効率ががた落ちになりますので、日本語で探す場合はMicrosoftのサイトが一番なのかな。
あと参考情報になりますが、書籍を手元においておくのも手段としては間違ってはないと思いました。
ちょっとした作業に没頭していると、下手にウインドウのレイアウトをいじくれないようなタイミングがあって、そのときにちょっとしたことではありますが、画面外に目を移して検索できる仕掛けがあると、うれしかったりします。
AmazonでPowerShellとして人気な書籍ということであればこちらの模様です。
WEBサイトも書籍もどちらも検索上位は英語が多めなので、もう少し充実されていてもよいような気がしますね。
レスポンシブ広告
関連記事
-
.NETダイアログが表示されずスクリプトが止まる問題の対策
PowerShell入門中です。 先日のこちらの記事(PowerShellでダイ …
-
PowerShellでダイアログを表示し入力結果を取得
PowerShellの入門中です。 今回はPowerShellスクリプトからのW …
-
PowerShellスクリプトを動かすための設定
PowerShellは最近のWindowsで追加されたスクリプト言語で、今のWi …
-
MiniDV形式ビデオテープを撮影日時つきファイルでバックアップ[PowerShell版]
去年からちょいちょいPowerShellを使い出しました。 勉強の一環で、ちょっ …
- PREV
- USBケーブルの違いから来るもろもろの比較
- NEXT
- 登山者数世界一の高尾山に安く登る