作成日:2021/08/10 更新日:2021/12/02

推奨理由1 Windowsに標準搭載されている

powershellはwindows7以降のWindows OSには標準搭載されているため、Windowsであればどの環境でも利用可能です。 会社支給のPCなどは自由にソフトウエアをインストールすることができない環境が多いと思いますが、 そういった環境であってもpowershellは利用可能です。また、クロスプラットフォームに対応した言語であり linuxでもインストールすれば利用可能であり一度書いたコードを幅広い環境で流用することが可能です。

推奨理由2 充実した機能

Windowsには昔からあるプログラムツールとしてコマンドプロンプトが存在しますが、同じスクリプト言語であるlinuxのbash等と比較すると機能が非常に貧弱であり コマンドラインでできる作業が非常に少なく使いづらい状態でした。

powershellはこの欠点を克服しbashに近い感覚でスクリプトを書くことが可能になっています(ただ、少し言語に癖があり慣れは必要)。 機能も充実しており時刻計算、正規表現、csv変換等、昨今のプログラム言語に当然のように用意される機能がpowershellでもデフォルトで利用でき、 プログラマー系タスクだけでなく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であれば多くの作業がコード化することで効率化できます。

★ORACLE案件承ります