Windowsのポチポチ業務を爆速化するPowerShell、起動時に関数を自動登録するプロファイルの使い方


みなさんこんにちは、テラド(@terashin1226)です!

PowerShellで西暦を和暦にサクッと変換する方法をお伝えしています。

前回は、関数をあだ名のように短いワードで呼び出すエイリアスについてお伝えしました。

Windowsのポチポチ業務を爆速化するPowerShell、短いワードでサッと関数を呼び出すエイリアスの使い方
Windowsのポチポチ業務(=マウスを使った業務)を爆速化するPowerShell。自作した関数をFunctionドライブというものに登録して、いつでも呼び出せるようにする方法をお伝えします!

今回はPowerShellを起動したときに自動で実行されるプロファイルというスクリプトを使って、関数やエイリアスを自動登録する方法をお伝えします!

それではいってみましょう!

スポンサーリンク

前回のおさらい

PowerShellをコンソール上からサクッと西暦を和暦に変換する方法をお伝えしています。

  • 関数を短い名前で呼び出せるエイリアスについて ← 前回説明
  • 関数とエイリアスをいつでも呼び出し可能にするプロファイルについて ← 今回説明
  • 西暦を和暦へ変換する関数を作成する
  • 完成した関数とそのエイリアスをプロファイルに登録する

前回は自作の関数「Hello-World」にエイリアスを設定して「hw」という短いワードで呼び出せるようにしました。

エイリアスを設定するにはコマンドレット:New-Aliasを使用します。

New-Alias -Name “エイリアス” 関数名

そして登録したエイリアスは、コマンドレット:Get-Aliasで確認できるんでしたね。

これでいつでも短いワードで関数を呼び出せる!そう思って一度PowerShellを終了、再起動したあとにGet-Aliasを実行すると…

あれ、エイリアスが消えてしまいました…。

もしかして関数も…

呼び出すとエラーとなってしまいました。

実は登録した関数とエイリアスはPowerShellの終了に合わせて消えてしまうのです。。

プロファイルを使って関数とエイリアスを登録する

PowerShellを終了すると消えてしまう関数やエイリアス。毎回登録するのは面倒ですよね?

プロファイルというスクリプトを使うことで解決できます!

プロファイルとは

プロファイルとはPowerShellを起動したときに自動的に実行されるスクリプトのことです。

プロファイルに関数とエイリアスを記述しておくことで、起動時に意識せずともプロファイルが実行され関数とエイリアスが登録されます。

プロファイルは「略歴」などを意味する言葉ですが、このようにユーザー毎のカスタム仕様を保存しておくことができます。

プロファイルのフルパスを確認する

ここからは具体的なプロファイルの作成方法についてご説明します。

PowerShellが参照するプロファイルの格納場所は自動変数「$profile」で確認することができます。

コンソールで入力して実行すると…

このようにプロファイルのフルパスが表示されます。筆者の環境では

「C:\Users\terad\Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1」

がプロファイルのパスになります。

プロファイルを作成する

デフォルトの状態ではプロファイルは存在しません。ファイルやディレクトリを作成するコマンドレットNew-Itemでプロファイルを作成しましょう。

New-Item $profile -force -type file

forceパラメータを付与すると、ディレクトリが存在しない場合に自動で作成してくれます。

typeパラメータでは作成するアイテムがディレクトリかファイルを選ぶことができます。プロファイルはファイル形式なので、fileを指定します。

コンソールで実行すると…

このようにプロファイルが作成されました!

プロファイルを編集する

ISEでプロファイルを編集します。

pseditを使って指定したファイルをISEで開くことができます。pseditは名称が「動詞-名詞」ではないですよね。コマンドレットではなくPowerShellに標準で用意されている関数です。

psedit ISEで開きたいファイルのパス

以下のコマンドをコンソールで入力し実行してください。

psedit $profile

ISEでプロファイルが開きました。New-Itemで作成したばかりなのでこのように空っぽです。

ここに前回作成したHello-Worldとそのエイリアスを直接記述します。

function Hello-World($str){
    Write-Host ("Hello! " + $str)
}
 
New-Alias -Name "hw" Hello-World

保存したらISEを終了し、もう一度起動してください。

Get-Aliasで確認すると…

エイリアス:hwが登録されていますね!

前回作成した「Hello-World」は、引数で渡した文字列に「Hello!」という文字列を結合してコンソールに表示する関数でした。引数に「プロファイル」という文字列を渡してhwを実行すると…

エイリアス:hwで関数「Hello-World」を呼び出すことができました!

プロファイルに記述しておくだけでPowerShellを起動すると関数「Hello-World」、そのエイリアスであるhwが登録されました!

まとめ

いかがだったでしょうか。

PowerShellを終了すると登録した関数やエイリアスは消えてしまいます。そこで関数とエイリアスをプロファイルに記述しておくことで、起動と同時に登録が完了し、いつでも使用できる状態になります。

プロファイルを使えば、ユーザー毎のカスタム仕様を設定することができますよ!

でも…PowerShellに関数やエイリアスを「登録してる」と説明してきましたが、いったいどこに登録されているのでしょうか。次回はその登録先である「ドライブ」についてご説明したいと思います、

では、最後までお読みいただきありがとうございました!

連載目次:Windowsのポチポチ業務を爆速化するPowerShell

Windowsのポチポチ業務(マウスを使った業務)を爆速化するために、PowerShellを使った効率化の方法をお伝えしています。
  1. Windowsのポチポチ業務を爆速化するPowerShell、はじめのハードルぐーーんと下げてみます!
  2. Windowsのポチポチ業務を爆速化するPowerShell、キーボードを使わずササっと起動する方法
  3. Windowsのポチポチ操作を爆速化するPowerShellの絶対条件!ディレクトリとその移動をマスターしよう!
  4. Windowsのポチポチ業務を爆速化するPowerShell、コマンドレットを腹の底から理解する!
  5. Windowsのポチポチ業務を爆速化するPowerShell、オンラインヘルプでコマンドレットを使い倒す!
  6. Windowsのポチポチ業務を爆速化するPowerShell、統合開発環境ISEを紹介します!
  7. Windowsのポチポチ業務を爆速化するPowerShell、スクリプトを実行するための準備
  8. Windowsのポチポチ業務を爆速化するPowerShell、フォルダを作るスクリプトの作り方
  9. Windowsのポチポチ業務を爆速化するPowerShell、if文を使いフォルダの有無で処理を分岐させる方法
  10. Windowsのポチポチ業務を爆速化するPowerShell、ForEach-Objectで配列の全要素を処理する方法
  11. Windowsのポチポチ業務を爆速化するPowerShell、パイプラインを使いコマンドレット間で値を引き渡す方法
  12. Windowsのポチポチ業務を爆速化するPowerShell、ファイルを別フォルダにコピーし名称を変更する方法
  13. Windowsのポチポチ業務を爆速化するPowerShell、ファイル名を変更する方法
  14. Windowsのポチポチ業務を爆速化するPowerShell、正規表現で複雑なファイル名変更をする方法
  15. Windowsのポチポチ業務を爆速化するPowerShell、タスクスケジューラでスクリプトを決まった日時に起動する方法
  16. Windowsのポチポチ業務を爆速化するPowerShell、ファイルをバックアップするスクリプトの作り方
  17. Windowsのポチポチ業務を爆速化するPowerShell、関数を作ってスクリプトから呼び出す方法
  18. Windowsのポチポチ業務を爆速化するPowerShell、関数をコンソールで登録して呼び出す方法
  19. Windowsのポチポチ業務を爆速化するPowerShell、短いワードでサッと関数を呼び出すエイリアスの使い方
  20. Windowsのポチポチ業務を爆速化するPowerShell、関数やエイリアス保存場所のドライブを紹介します
  21. Windowsのポチポチ業務を爆速化するPowerShell、elseifで日付の元号を判定する方法
  22. Windowsのポチポチ業務を爆速化するPowerShell、日付を操るDatetime型

タイトルとURLをコピーしました