文字列データをDOSのフィルタコマンドに渡して処理します。
フィルタは、 コマンド < 入力ファイル名 > 出力ファイル名
のように、ファイルをリダイレクトして入出力するものを指定します。
動作にはWindowsScriptingHostが必要です。
|
|
|
外部変形プログラムを作るにあたって、正規表現は避けて通れません
AWKやRubyなんかは、そのまま使えるようになっていますね。
Cでも、BCC55なら正規表現ライブラリがついてきます。
Delphiでは、
JRE32や
BREGEXP
などのDLLを使うのが手っ取り早いかな?
VBScriptにも正規表現を扱う方法が用意されています。
それが RegExpオブジェクトです。(Perl互換らしいです)
|
|
Set REObj = new RegExp
REObj.Pattern = "^c[hvsroptkz2]"
Do Until InputFile.AtEndOfStream
CurrentLine = LTrim(InputFile.ReadLine)
If REObj.Test(CurrentLine) Then
rem ここでCurrentLineをいろいろ加工する
End If
WScript.Echo CurrentLine
Loop
|
|
|
"^c[hvsroptkz2]"という正規表現は、文字列データを表わしています。
つまり、上記のコードは文字列データを加工して出力するという動作になります。
もうひとつ、今回のスクリプトでは環境変数の読み出しを行っています。
|
|
Set ShellObj = CreateObject("WScript.Shell")
Set Environ = shellobj.Environment
CommandProcessor = Environ.Item("COMSPEC")
|
|
|
|
CommandProcessorに、コマンドプロセッサ(commandまたはcmd)が入るわけです。
|