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 メソッド
連係例
$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
以上!