PowerShell のカウンター

PowerShell のカウンター

プログラミングでは、カウンタはプログラム内で数える必要があるものを追跡するために使用されます。通常、これは 0 に初期化された数値型の変数です。

プログラム内でカウンタを増加させるためのいくつかのアプローチがあります。この記事では、PowerShell でのカウンタの実装方法の異なるアプローチに焦点を当てます。

PowerShell の基本的なカウンタ

カウンタを実装する基本的な方法は、変数を宣言して 0 に初期化することです。以下のように示されています。

$counter = 0

$counter 変数の値を PowerShell コマンドウィンドウに出力しましょう。

Write-Host $counter

出力:

PowerShell でのカウンター - 基本的なカウンター パート 1

$counter 変数の値を増加させるために、2つの方法を使用できます。伝統的な方法の一つは、$counter に 1 を加え、その結果を $counter に再割り当てすることです。

$counter = $counter + 1

出力:

PowerShell のカウンター - 基本的なカウンターパート 2

もう一つのアプローチは、インクリメント(++)演算子を使用することです。

$counter++

出力:

PowerShell でのカウンター - ポストインクリメントパート 1

次に、後置インクリメントを使用して $countVar の値を増加させます。

$counterHolder = $countVar++
Write-Host $counterHolder

出力:

パワーシェルのカウンター - ポストインクリメントパート 2

ご覧のとおり、$counterHolder 変数は 0 を保持しています。これは、$countVar++ がその式内ではインクリメントされなかったことを意味します。しかし、$countVar の実際の値は増加しているはずです。$countVar 変数の値を出力しましょう。

PowerShell におけるカウンター - 後置インクリメントパート 3

PowerShell の前置インクリメント演算子

前置インクリメント演算子は、式内で使用する前に変数の値を増加させるために使用されます。以下の例で理解しましょう。

まず、$preIncrVar という変数を宣言し、0 に初期化します。

$preIncrVar = 0
Write-Host $preIncrVar

PowerShell のカウンター - プリインクリメントパート 1

次に、前置インクリメント演算子を以下のように使用します。

$preIncrVarHolder = ++$preIncrVar
Write-Host $preIncrVarHolder

出力:

PowerShell のカウンター - プレインクリメントパート 2

予想通り、$preIncrVarHolder 変数の値は 1 です。これは、前置インクリメント演算子が使用されている式内で $preIncrVar 変数の値を増加させることを意味します。これらのアプローチは、PowerShell の forwhile、および do...while ループで使用できます。

チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe
Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.