読者です 読者をやめる 読者になる 読者になる

素敵なおひげですね

PowerShellを中心に気分で書いているブログです。

Visual Studio Code PowerShell拡張で使えるコマンドまとめ

PowerShell VSCode

前回前々回に続いて今回はPowerShell拡張で利用可能なコマンドをまとめました。

各コマンドがどのバージョンから利用可能になったか調査するのが難しい部分があったため、単純に現在最新のバージョン(Ver.0.11)で利用可能なものをリストアップする形としています。

1. コマンドパレットで使えるコマンド

最初にコマンドパレットで利用可能なコマンドについて記載します。

コマンドパレットはCtrl+Shift+Pで開くことができ、Powershell:で始まるコマンドがPowerShell拡張で使えるコマンドになります。

f:id:stknohg:20170328210828p:plain

以下に一覧を記載します。

コマンド 内容
PowerShell: Create New Project from Plaster Template Plasterを使いテンプレートからプロジェクトを生成します。
PowerShell: Expand Alias (Shift+Alt+E) スクリプト中のエイリアスを展開します。
PowerShell: Find/Install PowerShell Modules from the gallery (Ctrl+K Ctrl+F) PowerShell Galleryからモジュールを検索しインストールします。
PowerShell: Get online help for Commands (Ctrl+F1) 選択されたコマンドのオンラインヘルプを表示します。
PowerShell: Open current file in PowerShell ISE (Ctrl+Shift+I) 現在のファイルをPowerShell ISEで開きます。
PowerShell: Open Examples Folder Examplesフォルダを開きます。
PowerShell: Open PowerShell Extension logs Folder PowerShell拡張のログフォルダを開きます。
PowerShell: Restart Current Session 現在のPowerShell Sessionを再起動します。
PowerShell: Run selecton (F8) 選択部分を実行します。|実質ショートカットキー専用のコマンドです。
PowerShell: Select PSScriptAnalyzer Rules PSScriptAnalyzerで適用するルールを設定します。
PowerShell: Show additional commands from PowerShell modules PowerShell拡張に追加したコマンドを表示します。
PowerShell: Show Integrated Console Integrated Consoleを表示します。
PowerShell: Open PowerShell Extension logs PowerShell拡張のログを出力に表示します。
PowerShell: Open Show Session Menu セッションメニューを表示します。

PowerShell: Create New Project from Plaster Template

Plasterを使いテンプレートからプロジェクトを生成します。
Plasterでは独自のテンプレートを作ることができますが、現時点ではNew PowerShell Manifest Moduleというマニフェストモジュールを作るテンプレートのみ登録されています。

f:id:stknohg:20170328020411p:plain

動作を確認してみたところ、Integrated Consoleとの相性が悪いのか、このコマンドを実行してもキャレットの制御が上手くいかずモジュールの生成がかなり面倒なことになっていました…
これはそのうち改善されると思います。

PowerShell: Expand Alias

スクリプト中のエイリアスを展開し元の関数に戻してくれます。
例えば、

echo "Hello World"

というスクリプトであれば、

Write-Output "Hello World"

と変換してくれます。
非常に便利な機能な上Shift+Alt+Eのショートカットキーも割り当てられていますので覚えておくとスクリプトの作成が捗るでしょう。

PowerShell: Find/Install PowerShell Modules from the gallery

PowerShell Galleryからモジュールを検索しインストールすることができます。

f:id:stknohg:20170328022653p:plain

Install-Module -Name [モジュール名] -Scope CurrnetUser

と同等の機能ですが、一旦すべてのモジュール情報をローカルにキャッシュしている様で初回実行時はレスポンスが非常に悪いです…
率直に言ってこれならIntegrated Consoleから直接Find-ModuleInstall-Moduleを実行した方がマシだと思います。

PowerShell: Get online help for Commands

選択されたコマンドのオンラインヘルプ(MSDN)を表示します。
残念ながらブラウザを起動して該当のページを開いてくれるだけで、PowerShell ISEのコマンドアドオンの様に至れり尽くせりな感じではないです…

PowerShell: Open current file in PowerShell ISE

現在のファイルをPowerShell ISEで開きます。
機能としては面白いですが、正直使いどころがわかりません…

PowerShell: Open Examples Folder

新しいVisual Studio Codeを起動し、Examplesフォルダを開きます。

f:id:stknohg:20170328022410p:plain

PowerShell: Open PowerShell Extension logs Folder

新しいVisual Studio Codeを起動し、PowerShell拡張のログフォルダを開きます。

f:id:stknohg:20170328023020p:plain

PowerShell: Restart Current Session

現在のPowerShellセッションを再起動します。
このコマンドは実質PowerShell拡張の再起動コマンドとなります。

前回触れたとおり、powershell.startAutomatically=falseの場合はこのコマンドを使ってPowerShell拡張を有効にする必要があります。

PowerShell: Run selecton

ファイル中で選択された部分を実行します。

このコマンドはコマンドパレットからよりF8キーを押して実行する方が多いかと思います。

PowerShell: Select PSScriptAnalyzer Rules

PSScriptAnalyzerで適用するルールを設定します。

f:id:stknohg:20170328023728p:plain

チェックを付けたルールが有効になりconfirmをクリックすると反映されます。

この設定は永続化しませんので、永続化させたい場合はpowershell.scriptAnalysis.settingsPathパラメーターに独自の設定ファイルを記述する必要があります。

PowerShell: Show additional commands from PowerShell modules

PowerShell拡張に追加したコマンドを表示・実行します。

ここでコマンドを表示するには、あらかじめRegister-EditorCommandを使いコマンドを追加しておく必要があります。
細かい手順については Extending the Host Editor を参考にしてください。*1

PowerShell: Show Integrated Console

Integrated Consoleを表示します。
おおむねCtrl+@と同等の動作をしますが、細かい違いとしてはIntegrated Terminalに複数の端末がある場合にIntegrated Consoleを選択して表示してくれます。
(Ctrl+@の場合は直近に開かれていた端末を表示するだけです)

PowerShell: Open PowerShell Extension logs

PowerShell拡張のログを出力に表示します。

f:id:stknohg:20170328024640p:plain

PowerShell: Open Show Session Menu

セッションメニューを表示します。

f:id:stknohg:20170328024754p:plain

セッションメニューでは、

  • Restart Current Session
  • Open Session Logs Folder

コマンドと、このメニューにのみ存在する

  • Switch to Windows PowerShell [(x86)|(x64)]

コマンドが提供されています。
Switch to Windows PowerShellコマンドは意外と使いどころがありそうなので独立したコマンドにしてほしい感じです。

2. Integrated Consoleで使えるコマンド

続けてIntegrated Consoleで使える独自コマンド*2について説明します。

現時点ではまだpseditの1コマンドしかありません。

コマンド 内容
psedit 指定したファイルをVisual Studio Codeで表示します。

psedit

pseditは指定したファイルをVisual Studio Codeで開くコマンドです。
PowerShell ISEに同名のコマンドが存在しますが、Ver.0.11になってPowerShell拡張にも実装されました。

PowerShell ISEとはパラメーター名が異なり-FilePathsとなっています。*3

実行例は以下の様な感じです。

> psedit -FilePaths .\hello.ps1, .\world.ps1

f:id:stknohg:20170328214905p:plain

最後に

とりあえずこんな感じです。

率直に言ってあまりぱっとしないコマンドもありますが、便利なコマンドもありますので覚えておいて損はないかと思います。

*1:こちらについては時間をとって別記事を書こうと思います。

*2:というか関数ですね…

*3:PowerShell ISEのpseditのパラメーター名は-filenamesです。