「バッチ処理」とはコンピューター上で無人で自動処理を行うプログラムの総称です。

主にサーバー管理やホストコンピューターのメンテナンスなどで使われます。

具体的には、古い不要になったログファイルを自動的に削除したり、定期的にバックアップ処理を行ったりするのに使われます。

 

使用されるプログラミング言語は「スクリプト言語」と呼ばれる種類の言語が使われるのが一般的です。

とにかく構造がシンプルで処理の変更がその場で出来るとゆうが必須条件、反面あまり複雑な処理は要求されません。

時代の移り変わりもありますが、実行環境により言語がマチマチなのも特徴ともいえます。

DOSや初期のWindowsだと「バッチファイル」

Windows XP、WindowsServer2003/2008世代だと「Windows Script Host」(”WSH”)

OS/2やIBMのホストシステムだと「REXX」

UNIXやLinuxだと「シェルスクリプト」

Webサーバー上で動くcgiなんかでは「Perl」や「PHP」など

他にも、8ビットMircrosoft ExcelやWord上なんかで動く「VBA」なんかも含めても良いかもしれません。

 

どれもこれもテキストファイルにプログラムを書いて、コンパイル作業無しに直接実行ってのが共通しています。

(内部的にはコンパイルして処理速度を速めているものもありますが)

で、今あれこれ試行錯誤しているのが「Windows PowerShell」

WindowsServer2008から提供されはじめたWSHに代わるスクリプト環境です。

今現在、ソフトデザイン&プログラミングを担当しているシステムの動作OSがWindows7(ロボット制御カードを積んでる関係で32ビット版ですが)なので、どうせならPowerShellでメンテナンススクリプト組んでみようかと思いたって環境として評価も兼ねて色々試してる最中です。

で、WSHがVisual BASICやVBAをベースにした言語構造なのに対し、PowerShellはUNIX/Linuxのシェルスクリプトにかなり近づけた文法構造を持ってます。

(恐らく、Linuxサーバーでのメンテナンススクリプトの作成に慣れてるサーバー管理者にとって使いやすいようにとの事でしょう)

実際使ってみると、結構クセあるので最初は戸惑いますね。

しかし、スクリプトファイルで実行の他、コマンドラインで直接命令を実行して動きを確認出来るのは動きを確認しながらスクリプトを書くのに便利だし

コマンドライン上で正規表現のマッチングや抽出なども確認出来るのは結構便利です。

ログの抽出程度なら、スクリプト組まなくても直接正規表現で検索も出来ますし・・・

 

コマンドラインからのPowerShell環境の起動: >powershell

コマンドラインからのPowerShellスクリプトの実行:>powershell  ./script.ps1

PowerShell上からのスクリプト実行: >./script.ps1

PowerShellの終了:>exit

変数: $変数名

変数のキャスト・型変換: $s = [string]$i

行単位のコメント: # 以下行末までコメント

ブロック単位のコメント: <# ….. #>

 

以外にとっかかりになるこの辺の情報を簡潔にまとめてる本やサイトって無いんですよね。

Perlとかシェルスクリプトを弄った経験がある人なら、ここら辺の情報さえ頭に入れちゃえば後は言語リファレンスを片手に色々できる様になると思います。