Windowsのポチポチ業務を爆速化するPowerShell、関数を作ってスクリプトから呼び出す方法


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

Windowsのポチポチ業務(マウスを使った業務)を爆速化するために、PowerShellを使った効率化の方法をお伝えしています。

前回はタスクスケジューラと相性抜群なファイルバックアップのためのスクリプトをご紹介しました。

Windowsのポチポチ業務を爆速化するPowerShell、ファイルをバックアップするスクリプトの作り方
Windowsのポチポチ業務(=マウスを使った業務)を爆速化するPowerShell。前回ご紹介したタスクスケジューラと組み合わせて使いやすいファイルバックアップのスクリプトの作り方をご紹介します!

今回はPowerShellで関数を作ってスクリプトから呼び出す方法をお伝えします!

関数とは「入力を受け、処理を実行し、結果を出力するまで」の流れをひとまとまりにしたものです。

スクリプトを書いていく中で同じ処理を何度も書くのは面倒ですし、ミスによる不具合が増えてしまいます。よく使う処理は関数にして再利用しましょう!

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

関数とは

関数とは「入力を受け、処理を実行し、結果を出力するまで」の流れをひとまとまりにしたものです。

関数は「入力」「処理」「出力」の3つで構成されます。下図のように「工場」をイメージしてみてください。

関数は「一度、製造ラインを作ってしまえば、あとは素材を与えてやるだけで自動的に製品ができあがり出荷できる」というイメージを持っておくとわかりやすいでしょう。

例として、与えられた2つの数字を足し算して結果を出力する関数「Add-Number」を作りながら説明していきます。

関数の作り方

では、具体的にPowerShellで関数を作る方法についてご説明します。

functionキーワードを使った基本構文

PowerShellで関数を作るには、functionキーワードを使います。

構文は以下の通りです。

function 関数名(引数1,引数2,…){

処理内容

return 戻り値

}

詳しく説明していきますね。

関数名

関数名はfunctionキーワードの右側に書きます。製造ラインに名前をつけるイメージです。

PowerShellでの関数名の命名に特別なルールはなく、英数字や日本語も指定可能です。

しかしコマンドレットと合わせて「動詞-名詞」と命名をすることを勧めます。統一感があり、スクリプトが読みやすくなるためです。

今回は「Add-Number」(加える-数)とします。

引数

引数は関数への入力です。製造ラインに流す「素材」にあたります。

引数は複数個指定することができます

関数名「Add-Number」の右側に()を書き、その中に変数で指定します。

Add-Numberは2つの数値を使用するので、以下のように2つ指定します。引数に使う変数名は任意につけることができます

処理

処理は{}内に書きます。素材を加工する「製造ライン」にあたります。

今回は$num1と$num2を加算するので以下のように書きます。

引数の$num1、$num2は、処理の中で繰り返し使用できます。

2つを加算した結果を変数:$answerに格納します。これで$answerという製品が完成しました!

戻り値

戻り値は関数からの出力です。戻り値はreturnキーワードで指定します。さきほど作った$answerを「出荷」するようなイメージです。

returnで戻り値を指定すると、スクリプト終了後に計算した結果を使用することができます。

スクリプトの全体像

以下のようなスクリプトが完成しました。

これで素材の指定→製造ライン→出荷までの準備が整いました!

スクリプトから関数を呼び出す

作成した関数をスクリプトから呼び出してみましょう!

呼び出し方は以下の通りです。関数と引数に入力する値を並べて書くだけなので簡単ですね。

関数名 引数1に入力する値 引数2に入力する値

今回は$num1に1、$num2に2を入力することにし、以下のように書きます。

スクリプトは上から順に解釈され実行されます。そのため、関数の定義より下で呼び出すようにしてください。

このスクリプトをISEに入力し、デスクトップに「sample.ps1」という名称で保存したら、実行します。

戻り値に指定した$answer(1+2の答え「3」)がコンソールに表示されました!

まとめ

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

今回は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、関数をコンソールで登録して呼び出す方法

  投稿者プロフィール

teradoshプログラミングする福祉職
システムエンジニアとして5年勤務した後、高齢者デイサービスで4年間働いた異色の経歴(学生時代は水泳コーチ)。1986年生まれ。大阪府豊中市在住。2女の父。

プログラミングの経験を活かし、福祉現場の業務効率化に情熱を燃やしています!

お気軽にフォローしてくださいね。

コメント