6月23日:貝殻本で PowerShell のお勉強をした

執筆日時:

第1章だけ読んで、ちょっと手を動かしてみた。

blog.daruyanagi.jp

今回の目標は PowerShell ISE から Visual Studio Code への移行がメイン。Visual Studio Code は知らないでもないし、使いやすいのは知ってるし、PowerShell ISE はそのうちディスコンになるだろうし、早晩移行はしなければならないのだけど、おっさんになるとほんとダメだね……なんとなくクセで ISE を起動してしまう。めんどくさいけれどちゃんと環境を作って、Visual Studio Code を使う癖を付けなければならない。

f:id:daruyanagi:20180629182933p:plain

本では丁寧に拡張機能の導入方法が書いてあるけど、Visual Studio Code は結構賢いので、PS1 ファイルを開くと「推奨する拡張機能」を教えてくれる。案内に従ってインストールして、リロードするだけで PowerShell 環境が完成するのでらくちんだね。

f:id:daruyanagi:20180629183159p:plain

ちなみに PowerShell は Windows PowerShell 5.x のままにしてる。PowerShell Core 6.0 への移行は、そのうちやろうかなって感じ。あと、Visual Studio Code は codeで起動できるので覚えておくとよい。cmd や explorer で code .\ ってやれば、カレントフォルダーを Visual Studio Code で開けると思う。

f:id:daruyanagi:20180629183240p:plain

まずは手始めにフォルダーの作成や移動を PowerShell だけでやる。統合ターミナルが使えるので、わざわざ cmd なんかを立ち上げる必要はない。PowerShell におけるファイルシステムの操作は ***-Item だけど、エイリアスがいい感じに振ってあるので、cd や ls、pwd が普通に使えていい(どんなエイリアスが降ってあるかは Get-Alias でみられる)。ただ、touch はないみたい。"" > sample.ps1 みたいなイディオムを覚えておくといい。これは本に書いてあった。

Visual Studio Code の PowerShell 拡張は大変良くできていて、PowerShell ISE よりもだいぶ強力に感じる。さっさと移行すればよかったな。

f:id:daruyanagi:20180629184309p:plain

とりあえず自動補完。PowerShell はコマンド名が 動詞-目的語 なのでわかりやすいのだけど、その分入力はちょっとめんどいので補完があると楽。

f:id:daruyanagi:20180629184425p:plain

デバッグ機能も ISE より使いやすいと思う。

f:id:daruyanagi:20180629184504p:plain

あと、個人的に気に入ったのが Expand Alias 機能。エイリアスを使ってあるコードって、それを知らなかったらぱっと見わかんないんだけど、これで展開してやると馬鹿正直に書いたコードに直してくれる。

f:id:daruyanagi:20180629184628p:plain

? って PowerShell の習いたてだと何のことかわかんないんだけど、展開して Where-Object にすればマニュアルを調べなくても意味は分かる。結構よくない?

とりあえず第1章のサンプルコードをぷちぷち打ったりして、概要をもう一度学んだ。UNIX はファイル(データ)指向、Windows は API(機能)指向。それぞれに向いた場面があるので、使い分けられるようになろう。

2章以降は一回斜め読みして、必要そうなところを脳みそにインデックスしようかなって思ってる。

PowerShell実践ガイドブック ~クロスプラットフォーム対応の次世代シェルを徹底解説~

PowerShell実践ガイドブック ~クロスプラットフォーム対応の次世代シェルを徹底解説~