【PowerShell】関数を1行で2回関数を呼び出すには?!~その策は邪道なのか~

どうも!リョクちゃです。

今回は、PowerShellのスクリプト内で複数の関数を作成して活用する場合に、

効率的?コードをスッキリとできる方法を紹介していきます。

何かとプログラムを書いていると、コードをもう少し短くできないか?

といったことを考える時がくるのではないでしょうか?

そんな時にこんな方法もあったなと頭の片隅にでも残していただけたらなと思います。

ちなみに前回はこちら

Windowsコマンド同様、batでも外部アプリケーションが呼び出せるようにPowerShellでも実は外部アプリケーションを呼び出すことができます。ふと外部アプリケーションを呼び出したいときにPowerShellでもできる方法を紹介していきます。



1行で関数を2度呼ぶ

スポンサーリンク




関数のおさらい

PowerShellにおける関数は以下のような記述で作成することができました。

関数については、以下の記事でも紹介していました。

PowerShellにも変数や定数、そして関数といったプログラミングにおける基本となる手法や技法があります。そんな中でも触りとなるモノについてまとめています。意外と何でもできてしまうPowerShell、何らかの参考になれば嬉しいです。

関数は、同じ処理が1つのスクリプトで何回も続くときに作ったり、

処理を細かくわけて、わかりやすくしたいときに作ります。(一般的には)

例えば、

スクリプト内で値の足し算を行いたい場合、

こんな関数を作っておくことで、後は同様の処理が来た時に、

この関数を呼べば同じ処理を何回も書かなくて済みますね。(例が悪かったかもです。)

下の関数の方がわかりやすいかもです。

これだったら関数として作る意味はありそうですね。

何回も条件分岐を書いていくよりは、1つ関数として作っておいた方が便利ですね。

コードも短くなりますね。

このようにして関数を駆使して、スクリプトを作っていく方が、複雑な処理になる場合は

おススメです。

処理を分けて関数を作っていくと、いろんな関数ができてきて、

ときに変数に、値を”ある値から加工した状態”で

変数に格納したいといった場合が出てくるかと思います。

このような場合、一方の処理は関数A、関数Aでの戻り値を使って

別の処理を関数Bに行わせて、最終的な戻り値を変数Cに格納するとします。

この時、段階的に処理を記述していくと、以下のようになるかと思います。

ただ、こういった書き方をしていると読み手にはわかりやすいですが、

どうしてもコードが長くなってしまいますね。

そんな時、1行に関数を呼び出す処理を凝縮してしまいたくなります。

以下の方法で実は短くできてしまいます。

このように書くことで、関数Aを先に呼び出し、その結果を関数Bの引数に当てています

コードを短くはできますが、若干わかりづらくなるかもしれませんね。

まとめ

コードを短くスッキリさせる方法として、

1行で関数を2度呼び出す方法を紹介していきました。

時に便利な書き方になるので、覚えてもらえたらなと思います。

1つの処理内で全てを書くのではなく、処理を細かくわけて関数を作っていくことで、

バグが起きた際に修正範囲を減らせるといったメリットもあります。

最後までお読みいただき、ありがとうございます。

Windows PowerShell実践システム管理ガイド 第3版 マイクロソフト関連書

Windows PowerShell実践システム管理ガイド 第3版 マイクロソフト関連書

横田 秀之, 河野 憲義
3,971円(08/16 21:05時点)
発売日: 2017/10/20
Amazonの情報を掲載しています

スポンサーリンク