はいどうもー!
インフラエンジニアのねるです。インフラエンジニア歴=年齢です。
僕は時々、仕事でバッチやシェル、スクリプトを書く機会があります。
最初はやっぱりバッチやシェル、スクリプトという単語を聞くと、「うぇっ・・・」と拒否反応を示してしまっていたので、克服するために勉強しました。
勉強してみると、意外と大したことないぞ・・・っ!となってきます。
同時にバッチやシェル、スクリプトの使いづらさに気付く事にもなりますが…。
Windowsで1番よく使われるのがバッチです。コマンドプロンプトで実行します。
以下の画像は「人間.bat」というバッチファイルを実行すると「インフラエンジニアは人間じゃなーーーーーーーーーーい???」と表示する簡単なプログラムです。
こんな使い方をすることはないんですけど、Windowsのコマンドを連続で実行することが出来るというメリットがあります。
条件分岐(if)や繰り返し(for)も使えるので、複雑な処理を実行することも可能です。
バッチのメリットは、Windowsで使えるコマンドを何も考えずに簡単に実行出来ることですね。羅列すれば良いだけですから。
バッチのデメリットは、ifやforの書き方が他のプログラミング言語と違いすぎて、とても違和感があることですね。
Windowsには似たようなものでPowerShellがあります。
バッチを紹介した後に紹介するのもなんなんですが、PowerShellはバッチの上位互換です。
PowerShellでは、バッチで使えるコマンドはほとんど全て使えます。
以前のWindowsにはPowerShellがデフォルトで入っておらず、インストールが必要であったため少しだけ敷居が高かったですが、今となってはデフォルトでインストールされているため、ハードルはかなり下げられたと言って良いでしょう。
以下の画像では先ほどのバッチファイルと同じコマンドをPowerShellで実行したものになります。
ね、同じコマンド実行できるしイメージもほとんど一緒でしょ?
PowerShell独自のコマンドレットもありますし、条件分岐や繰り返し処理の分かりやすさも圧倒的にPowerShellの方が上です。上位互換ですから。現代版バッチですね。
PowerShellにはプラグインという要素があり、インフラエンジニアの人がよく使っているVMwareのプラグインであるPowerCLIをPowerShellへ追加すると、VMwareを管理するためのコマンドが使えるようになります。
次回、PowerShellでビル・ゲイツを超えてみた!お楽しみに!