Windows PowerShellで起動時にスクリプトを実行する
Windows PCをCUIで操作するのに役立つWindows Powershellですが、Profile Fileというものを作成することで起動時に独自の処理を実行することができます。エイリアスの設定や実行スクリプトの起動などをProfile Fileに設定しておくことで、何度も同じスクリプトを打ち込む必要がなくなり便利です。
Profile Fileにはいくつか種類があり、正しく設定しないと予期せぬ挙動となる恐れがあります。今回は、Profile Fileの種類と設定方法を紹介します。
Profile Fileとは
シェルの起動時に自動で実行されるスクリプトファイルです。 UNIX系OSに搭載されているbashでは「.bashrc」というファイルにシェル起動時の実行スクリプトを記述することができますが、これに相当するものになります。
Profile Fileの種類
Windows Powershellでは以下の4種類のProfile Fileを設定できます。複数の設定を重複して設定することも可能で、リストの上から下へと順に実行されます。
All Users, All Hosts
All Users, Current Host
Current User, All Hosts
Current User, Current Host
上記リストから分かるように、「UsersがAllかCurrentか」「HostsがAllかCurrentか」で2×2=4種類の設定があります。UserとはPCのユーザーであり、Allの場合は全員、Currentの場合は現在のユーザーのみに適用される設定となります。HostとはPowerShellをホストするアプリケーションのことです。例えばVisual Studio CodeではPowerShellが組み込まれていますが、そのPowerShell環境にも設定を適用したい場合は「All Hosts」の設定を作ることになります。
自分だけが使う設定であれば「Current User, Current Host」の設定を作るとよいでしょう。
各環境のProfile Fileの場所は以下の変数に格納されています。ファイルはあらかじめ作成されているわけではないため、作りたい設定がある場合は当該のProfile Fileを作成する必要があります。
# Current Hostは「Windows Powershell」と「VS CodeのPowershell」で結果が異なる
$PROFILE.AllUsersAllHosts # All Users, All Hosts
$PROFILE.AllUsersCurrentHost # All Users, Current Host
$PROFILE.CurrentUserAllHosts # Current User, All Hosts
$PROFILE.CurrentUserCurrentHost # Current User, Current Host
設定の例
今回は特に凝った設定は紹介しませんが、以下のような流れでProfile Fileを作成・編集します。まず、Profile Fileを開き、存在しない場合は新たに作成します。
notepad.exe $PROFILE.CurrentUserCurrentHost # テキストエディタはお好みで
自分の環境では、デフォルトのパスである「$Home\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1」に作成されました。
開いたファイル内にスクリプトを記述します。
# スクリプト実行
echo "My Local Setting"
# エイリアスの設定
Set-Alias which Get-Command
# 関数の定義
function home {
cd $HOME
}
# その他の設定(下記はタブによるPathの補完)
Set-PSReadlineKeyHandler -Key Tab -Function Complete
ファイルを保存することで、次回以降にPowerShellを起動すると上記の設定が反映されます。
以上になります!おすすめのPowerShell設定なども次回以降の記事で紹介していきたいなと考えています。
参考
Profile Fileについて
エイリアス
お問い合わせはこちら✨
PC設定の自動化をはじめ、情シスに関するお悩みの相談も承っております。少しでも興味をお持ちいただいた方は下記からお気軽にご連絡ください!
積極採用中🙌🏻
また、情シスを一緒にサポートしてくれる方を募集しています!!! 興味のある方は以下のページから