【PowerShell 】基礎的な用語2

公開日: 2024/3/1

PowerShell の用語やコマンド理解についての学習をさらに進めていきたいと思います。

1. エイリアス

エイリアスとは、コマンドレットやコマンド要素(関数、スクリプト、ファイル、実行可能ファイルなど)につけられた別名または短縮名です。

シェルは、エイリアスを入力すると、コマンドが実行されます。

Get-Aliasを使用して、エイリアスを確認することができます。


●エイリアスを使用しないバージョン

test1を削除します。


Remove-Item -path


test1フォルダが削除できました。


●エイリアスを使用したバージョン

一覧で出てきたものを使用します。

削除処理できるエイリアスは、rd


rd でtest2フォルダを削除します。


rd パスを実行します。


test2フォルダを削除することができました。


10. クロスプラットフォーム

PowerShell Coreは、Windows、Linux、macOSに対応したオープンソースでクロスプラットフォームのシェル/スクリプティング環境です。

クロスプラットフォームとは、WindowsやMacOSなど異なるOSにおいても同じようにアプリケーションを動作させることを可能にしたプログラムになります。


現在のバージョンについては、下記コマンドで確認できます。

$PSVersionTable


確認したところ、バージョンが5.1でした。

現在、7にバージョンアップされているようです。

バージョンアップしておこうと思います。

11. ランタイム

プログラムを動かすときのことです。

プログラムの実行から終了までの時間に必要とされるものになります。

12. プロファイル

PowerShell プロファイルは、PowerShell の起動時に自動的に実行されるスクリプトです。

プロファイルを使用して環境をカスタマイズできます。

なお、プロファイルはデフォルトではなく、自分で作成する必要があります。

プロファイルのパスの確認をします。

下記、コマンドで実行しましょう。

$profile




実行結果、下記のパスになります。


さらに、プロファイルが作成されているかどうかの確認をします。

下記、コマンドで実行しましょう。

test-path $profile




実行結果、「False」


ちなみに、実行結果の表示が、「True」なら作成済み、「False」なら未作成です。

12-1. プロファイルを作成

プロファイルを作成するときは下記のコマンドで作成しました。

new-item -path

C:\Users\81802\OneDrive\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 -itemtype file -force


test-path $profile

実行結果、「True」になっていることが確認できました。


メモ帳で開くコマンド

notepad $profile




メモ帳で開くことができました。


12-2. プロファイルは4つ定義

PowerShell が起動した際に読み込むプロファイルは4つ定義できます。

下記の①~④、順に実行されます。

①すべてのユーザーおよびすべてのシェルに適用

下記、プロファイルのパス

%windir%\system32\WindowsPowerShell\v1.0\profile.ps1

②すべてのユーザーに適用されますが、Microsoft.PowerShell シェルのみに適用

下記、プロファイルのパス

%windir%\system32\WindowsPowerShell\v1.0\ Microsoft.PowerShell_profile.ps1

③現在のユーザーのみに適用され、すべてのシェルに適用

下記、プロファイルのパス

%UserProfile%\My Documents\WindowsPowerShell\profile.ps1

④現在のユーザーと Microsoft.PowerShell シェルのみに適用

下記、プロファイルのパス

%UserProfile%\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

13. まとめ

自分で調べながらコマンドを実際に打って実行して…を繰り返しているのですが、エラーが出てうまくいかないことも多く、なかなか前に進まない状況に悲しくなりつつも少しずつ問題解決をしていきたいと思います。


今回はPowerShell を使用するときに出てくる用語の学習をしてきました。

今後、実践的にコマンド入力しながら、基本的なコマンドやよく使うコマンドの学習についても進めていきたいと思います。

2. パラメータ

パラメータとは、外から投入されるデータなどのことで、ソフトウェアやシステムの処理や結果に影響を与える物になります。

関数、機械、ソフトウェアなど何らかの仕組みに対して外部から与える値のことを指し、与えるパラメータによって出力を変化させます。


3. 引数

引数とは、プログラム中で関数やメソッド、サブルーチンなどを呼び出すときに渡す値のことです。引数のことを「パラメータ」と呼ぶこともあります。

※サブルーチンとは、メインの処理(ルーチン)から呼び出される処理とは別の処理で、多くの場合、関数と同じ意味で使われます。

引数、関数、戻り値の関係についてのイメージ


4. 戻り値

戻り値とは、プログラム中で呼び出された関数やメソッド、サブルーチンなどが処理を終了する際に、関数から返ってくる処理結果のことです。

5. 関数

PowerShell 関数は、functionキーワードと関数名で定義します。

関数を使用することで、同じ手順を何度も繰り返すことを避けることができます。

効率的にコードを書くためには欠かせない機能になります。

機能部分として、共通化しておき、「部分的な処理」としてまとめているものになります。

あとから呼び出すだけで再利用可能にするためのものが関数になります。


構文について関数の名前、パラメータ、処理の内容を定義することができます。

関数内で処理された結果は、Returnキーワードを使用して呼び出し元に返されます。

【関数を定義するときの構文】

・引数なし、戻り値なしの関数
  function 関数名{処理}

・引数を受け取る場合
  function 関数名($引数1,$引数2){処理}

・戻り値を返す場合
  function 関数名{処理 return 戻り値}

6. スクリプト

スクリプトとは、簡易的なプログラムを指すことが多く、具体的には人間が読み書きしやすい言語で書かれたプログラム(ソースコード)をすぐに実行できるものを指します。

7. スクリプティング

簡易的なプログラムであるスクリプトを記述することをスクリプティングといいます。

また、スクリプティング環境とは、スクリプトが使用できる環境になります。

8. モジュール

ITの分野では、ひとまとまりの機能や構成要素をもつ部品のことです。

システム中核部や他の部品への接合部(インターフェース)の仕様が明確化しています。

またモジュールは独立性が高く、規格化されているため交換や追加が容易にできるようになっています。

1つのシステムの構築を進めていくには、いくつかの「部品」を定義し、その部品の組み合わせにより開発を進めていくことが一般的です。

モジュール化について

モジュールを作成することです。

既存のコードを見直し、共通的に利用できそうな処理があれば、1つの部品として独立させることを指します。


例:同じような計算が1つのプログラムの中で出てくるときに、同じ計算式を記述するのは不便なので、計算処理を「モジュール」として独立させて、必要に応じてモジュールを呼び出すようにすると便利です。

8-1. モジュール化のメリット

・開発効率(作業時間/精度)の向上

 ジュール化することによって、同じ内容の処理をコーディングする必要がなくなるということだけでなく、簡単な文法でもコピペミスや単純な文法ミスも減らすことができます。

・保守性の向上

改修や調査の時間を減らせます。

モジュール化していなければ、プログラムのすべてのロジックを改修していく必要がありますが、モジュール化していれば、モジュールのロジックを変えるだけでよくなります。


例:元号変換ロジックなど。

モジュール化されている処理については、例外なく必ずモジュールを使うようにしましょう。

改修漏れが発生する可能性もあります。

・可読性の向上

可読性が向上します。

つまり、プログラムが読みやすいということです。

可読性が高ければバグが発生してしまった時の調査がラクになります。

9. テストフレームワーク

テストフレームワークとは、ソフトウェアのテストを支援してくれる機能群のことです。

テスト用コードを作成し、テスト用コードから開発したコードを呼び出し、期待通りの結果が出力されるのかをテストします。

フレームワークは、命名規則、ファイル階層、プロセス、モジュール性など、ルールに沿って開発を行うことになり、保守性を保つことができます。


参考に…PowerShell のテストフレームとして「Pester」というものがあります。