命名って難しい

変数、関数、クラスなどなど実装より命名に毎回悩むタイプの人間による技術や趣味についてのメモ。

PowershellからVBScriptの連係

社内でエクセルファイルを取り扱う時VBScriptが実装楽で早い(Excelオブジェクトの開放など)時が多く、
それ以外についてはPowershellが実装が楽です。

連係を円滑に行うための流れを調べました。

連係のための関数・変数

Powershell

コマンドの実行

コマンドの実行は Invoke-Expression で行います。

参考URL: Windows PowerShell の機能

$cout = Invoke-Expression -Command "ping localghost"

コンソール出力が戻り値として取得できます(便利)

コマンドの終了コードの取得

Invoke-Expressionで実行したコマンドの結果は $lastExitCode で行います。

VBScript

コンソール出力

コンソール出力は WScript.Echo で行います。

参考URL: Echo メソッド

終了コードの設定

終了コードの設定は WScript.Quit で行います。

参考URL:Quit メソッド

連係例

Powershell実装

$foo = Invoke-Expression -Command 'cscript //nologo "C:\ReadExcel.vbs" "Bar.xls"'

if($lastExitCode -eq 0) {
  echo "成功しました。`n結果" + $foo
}
else {
  echo "失敗しました。"
}

VBScript実装

WScript.Echo "コンソールに呼び元が欲しい情報を出力する。"

' 終了コード
If isError Then
  WScript.Exit 1
Else
  WScript.Exit 0
End If

以上!