概要
パワーシェル習得を推奨する理由を解説する。
推奨理由1 Windowsに標準搭載されている
powershellはwindows7以降のOSには標準搭載されているため、Windowsであればどの環境でも利用可能です。 会社支給のPCなどは自由にソフトウエアをインストールすることができない環境が多いと思いますが、 そういった環境であってもpowershellは利用可能です。また、クロスプラットフォームに対応した言語であり linuxでもインストールすれば利用可能であり一度書いたコードを幅広い環境で流用することが可能です。
推奨理由2 充実した機能
Windowsには昔からあるプログラムツールとしてコマンドプロンプトが存在しますが、同じスクリプト言語であるlinuxのbash等と比較すると機能が非常に貧弱でありコマンドラインでできる作業が非常に少なく使いづらい状態でした。
powershellはこの欠点を克服しbashに近い感覚でスクリプトが書けます(ただ、少し言語に癖があり慣れは必要)。 機能も充実しており時刻計算、正規表現、csv変換等、昨今のプログラム言語に当然のように用意される機能がpowershellでもデフォルトで利用できるほか、.netのライブラリも使うことができます。
これによりプログラマー系タスクだけでなくPCを使う事務作業のかなりの部分が効率化することができます。
例えば、カレントディレクトリの「yyyymmdd」の名前がついているディレクトリを 10日前の日付にリネームしたいとすると以下で変更ができます。コマンドプロンプトでもできないことはないですが powershellでは時刻計算や正規表現を使うことで容易に実装可能です。
カレントディレクトリの「yyyymmdd」形式で名前がついているディレクトリを10日前の日付にリネーム
Get-ChildItem -Directory| Where-Object {$_.name -match '[0-9]{8}'} | ForEach-Object{
#フォルダ名を日付型に変換
$old_date = [DateTime]::ParseExact($_,"yyyyMMdd", $null)
#10日前の日付を取得設定
$new_date = $old_date.addDays(-10)
#リネーム
rename-item $_.FullName $new_date.ToString("yyyyMMdd")
}
推奨理由3 microsoft製品との高い親和性
powershellはmicrosoft製プログラム言語のため同じmicrosoft製品であるWindowsやexcel等を操作する機能が多く用意されています。 普段利用しているPCがWindowsであれば多くの作業がコード化することで効率化できます。