みなさんこんにちは、テラド(@terashin1226)です!
Windowsのポチポチ業務(マウスを使った業務)を爆速化するために、PowerShellを使った効率化の方法をお伝えしています。
前回はタスクスケジューラと相性抜群なファイルバックアップのためのスクリプトをご紹介しました。
今回はPowerShellで関数を作ってスクリプトから呼び出す方法をお伝えします!
関数とは「入力を受け、処理を実行し、結果を出力するまで」の流れをひとまとまりにしたものです。
スクリプトを書いていく中で同じ処理を何度も書くのは面倒ですし、ミスによる不具合が増えてしまいます。よく使う処理は関数にして再利用しましょう!
それではいってみましょう!
関数とは
関数とは「入力を受け、処理を実行し、結果を出力するまで」の流れをひとまとまりにしたものです。
関数は「入力」「処理」「出力」の3つで構成されます。下図のように「工場」をイメージしてみてください。
関数は「一度、製造ラインを作ってしまえば、あとは素材を与えてやるだけで自動的に製品ができあがり出荷できる」というイメージを持っておくとわかりやすいでしょう。
例として、与えられた2つの数字を足し算して結果を出力する関数「Add-Number」を作りながら説明していきます。
関数の作り方
では、具体的にPowerShellで関数を作る方法についてご説明します。
functionキーワードを使った基本構文
PowerShellで関数を作るには、functionキーワードを使います。
構文は以下の通りです。
処理内容
return 戻り値
}
詳しく説明していきますね。
関数名
関数名はfunctionキーワードの右側に書きます。製造ラインに名前をつけるイメージです。
PowerShellでの関数名の命名に特別なルールはなく、英数字や日本語も指定可能です。
しかしコマンドレットと合わせて「動詞-名詞」と命名をすることを勧めます。統一感があり、スクリプトが読みやすくなるためです。
今回は「Add-Number」(加える-数)とします。
function Add-Number
引数
引数は関数への入力です。製造ラインに流す「素材」にあたります。
引数は複数個指定することができます。
関数名「Add-Number」の右側に()を書き、その中に変数で指定します。
Add-Numberは2つの数値を使用するので、以下のように2つ指定します。引数に使う変数名は任意につけることができます。
function Add-Number($num1,$num2)
処理
処理は{}内に書きます。素材を加工する「製造ライン」にあたります。
今回は$num1と$num2を加算するので以下のように書きます。
{ $answer = $num1 + $num2 }
引数の$num1、$num2は、処理の中で繰り返し使用できます。
2つを加算した結果を変数:$answerに格納します。これで$answerという製品が完成しました!
戻り値
戻り値は関数からの出力です。戻り値はreturnキーワードで指定します。さきほど作った$answerを「出荷」するようなイメージです。
return $answer
returnで戻り値を指定すると、スクリプト終了後に計算した結果を使用することができます。
スクリプトの全体像
以下のようなスクリプトが完成しました。
function Add-Number($num1,$num2){ $answer = $num1 + $num2 return $answer }
これで素材の指定→製造ライン→出荷までの準備が整いました!
スクリプトから関数を呼び出す
作成した関数をスクリプトから呼び出してみましょう!
呼び出し方は以下の通りです。関数と引数に入力する値を並べて書くだけなので簡単ですね。
今回は$num1に1、$num2に2を入力することにし、以下のように書きます。
Add-Number 1 2
スクリプトは上から順に解釈され実行されます。そのため、関数の定義より下で呼び出すようにしてください。
function Add-Number($num1,$num2){ $answer = $num1 + $num2 return $answer } Add-Number 1 2
このスクリプトをISEに入力し、デスクトップに「sample.ps1」という名称で保存したら、実行します。
戻り値に指定した$answer(1+2の答え「3」)がコンソールに表示されました!
まとめ
いかがだったでしょうか。
今回はPowerShellで関数を作ってスクリプトから呼び出す方法をお伝えしました!関数は、工場のようなもの(素材(引数)→製造ライン(処理)→出荷(戻り値))とイメージで捉えてみてくださいね!
次回はコンソールからスクリプトを呼び出す方法とPowerShellに関数を登録する「プロファイル」という仕組みをご紹介します!
最後までお読みいただきありがとうございました!
連載目次:Windowsのポチポチ業務を爆速化するPowerShell
Windowsのポチポチ業務(マウスを使った業務)を爆速化するために、PowerShellを使った効率化の方法をお伝えしています。- Windowsのポチポチ業務を爆速化するPowerShell、はじめのハードルぐーーんと下げてみます!
- Windowsのポチポチ業務を爆速化するPowerShell、キーボードを使わずササっと起動する方法
- Windowsのポチポチ操作を爆速化するPowerShellの絶対条件!ディレクトリとその移動をマスターしよう!
- Windowsのポチポチ業務を爆速化するPowerShell、コマンドレットを腹の底から理解する!
- Windowsのポチポチ業務を爆速化するPowerShell、オンラインヘルプでコマンドレットを使い倒す!
- Windowsのポチポチ業務を爆速化するPowerShell、統合開発環境ISEを紹介します!
- Windowsのポチポチ業務を爆速化するPowerShell、スクリプトを実行するための準備
- Windowsのポチポチ業務を爆速化するPowerShell、フォルダを作るスクリプトの作り方
- Windowsのポチポチ業務を爆速化するPowerShell、if文を使いフォルダの有無で処理を分岐させる方法
- Windowsのポチポチ業務を爆速化するPowerShell、ForEach-Objectで配列の全要素を処理する方法
- Windowsのポチポチ業務を爆速化するPowerShell、パイプラインを使いコマンドレット間で値を引き渡す方法
- Windowsのポチポチ業務を爆速化するPowerShell、ファイルを別フォルダにコピーし名称を変更する方法
- Windowsのポチポチ業務を爆速化するPowerShell、ファイル名を変更する方法
- Windowsのポチポチ業務を爆速化するPowerShell、正規表現で複雑なファイル名変更をする方法
- Windowsのポチポチ業務を爆速化するPowerShell、タスクスケジューラでスクリプトを決まった日時に起動する方法
- Windowsのポチポチ業務を爆速化するPowerShell、ファイルをバックアップするスクリプトの作り方
- Windowsのポチポチ業務を爆速化するPowerShell、関数を作ってスクリプトから呼び出す方法
- Windowsのポチポチ業務を爆速化するPowerShell、関数をコンソールで登録して呼び出す方法
- Windowsのポチポチ業務を爆速化するPowerShell、短いワードでサッと関数を呼び出すエイリアスの使い方
- Windowsのポチポチ業務を爆速化するPowerShell、関数やエイリアス保存場所のドライブを紹介します
- Windowsのポチポチ業務を爆速化するPowerShell、elseifで日付の元号を判定する方法
- Windowsのポチポチ業務を爆速化するPowerShell、日付を操るDatetime型