見出し画像

キモかわPowerShell(その6) 繰り返しを味わう

こんにちは、なるーらぼです。今回も少しだけプログラミングなことをやります。
今回やるのは、「繰り返し」です。

繰り返そう

もしあなたがExcelマクロをつくったことがあったとしたら、よくわからないけど使ったことがあるかもしれません。
この繰り返しはコンピュータのとても得意なことの一つです。
今回も日本語プログラミングで見ていきます。

1から10まで繰り返す
 それを表示する
ここまで

さて、上記の例では「繰り返す」から「ここまで」の間の命令を繰り返しコンピュータに行わせます。
「それ」は繰り返すときの数値を数えたものを指していると思ってください。
そうすると、上記の例は1から10を順番に表示していくことになります。

Excelマクロのように書くと次のようになります。

For index = 1 To 10
 Debug.Print index
Next

途端に呪文めいてきますねー。
あわてなくて大丈夫ですよ!よく見てみると、日本語で書いたものとさほど変わりないことがわかると思います。
最初の行は「1から10まで繰り返す」と書いてあるのですから。
つまり、英語になっただけということです。

in PowerShell

さあ、それではPowerShellで書いてみます。
実はExcelマクロのように書くこともできますが、もっとわかりやすくなります。

1..10

え?と思われたかもしれませんが、PowerShellではこれだけです。
見た目にも非常にわかりやすいと思います。
少しだけ解説をすると、ドット記号が2つならんでいるところがポイントです。
このドット記号2つがあることで、1から10の数値が自動的に作成されます。
その結果、PowerShellでは1から10の数値が出力されることになるのです。

釈然としない、というプログラミング経験者の方のために、マクロなどでも使われそうな書き方もご紹介します。

for($index = 1; $index -ge 10; $index++){
 $index
}

かなりよく見るかたちになったと思います。
でも、タイピングする量がかなり違いますね。
わたしは楽な方を選んでしまいがちです。

実はPowerShellでは、かなりいろんな方法の繰り返しを書くことができます。
なにしろ、「ForEach-Object」という繰り返し処理専用のコマンドレットも存在するくらいですから。
PowerShell独特の方法、これまでのプログラミング言語と同じような書き方、JavaScriptのような書き方、
それぞれ繰り返しに必要とされる方法を選択することになります。
最初のうちは、そこまで深く考えずにいろいろやってみることをおすすめします。

定番の繰り返し

PowerShellでは先程ご紹介したコマンドレットをつかった、定番の繰り返しがあります。
この「ForEach-Object」コマンドレットは便利なやつでして、他のコマンドレットの出力をそのまま繰り返し処理することができます。
たとえば、さきほどの1から10までの数値を繰り返すときに、すべてに3ずつ足したいとき(そんなことをしたいときがあるかな)を
考えてみます。
どこにも3を足していくことができる余地がなさそうですが、ForEach-Objectをつかうと次のようにできます。

1..10 | ForEach-Object { $_ + 3 }

波括弧がコマンドレットに続いて記述されています。
この波括弧の中身をForEach-Objectコマンドレットが実行してくれます。
ドル記号とアンダースコア記号「$_」は特殊なもので、波括弧に入力された情報を指します。
ここでは1から10の数値が該当します。
結果として、1から10の数値に3が足し算された結果が出力されます。

さいごに

今回はいままでよりも少し難しかった、というより情報量が多すぎるかもしれません。
繰り返しはPowerShellを便利に使うための必須アイテムです。
そういうこともあって詰め込んでみました。

それでは今回はこのあたりで。

この記事が気に入ったらサポートをしてみませんか?