PowerShellからuwsスクリプトを実行しよう

uwsファイルがuwsc.exeに関連付けしてあれば Start-Process でuwsファイルパスを叩くといい感じ

# スクリプトに引数をわたしつつ、終了を待つ
Start-Process .\hoge.uws -ArgumentList fuga,piyo -PassThru | Wait-Process

Start-Process-PassThru するとちゃんと uwsc.exe のプロセスが返る
なので Wait-Process で終了を待てるというすんぽーさ
-ArgumentList に渡した配列は PARAM_STR[] に入るよ

// hoge.uws

if length(PARAM_STR) then
    msg = join(PARAM_STR, "<#CR>")
else
    msg = "PARAM_STR なし"
endif

msgbox(msg)

上のコマンドで呼ぶのがこんなスクリプトだった場合
ダイアログ閉じるまでPowerShellは待機するぞ

それと、uwsスクリプトが exitexit で終了コードを返せばPowerShell側でちゃんと受け取れるよ

// fuga.uws

exitexit slctbox(SLCT_BTN or SLCT_STR, 0, "終了コードを選ぶ", 0, 1, 2, 300, 65535)
# 終了を待って、ExitCodeを確認する
$Uws = Start-Process .\fuga.uws -PassThru
$Uws | Wait-Process
$Uws | select exit*

なんかほら、便利そうな気がしてきたろう?

PowerShellからuwsスクリプトを実行しよう」への2件のフィードバック

    • -Waitパラメータ…!恥ずかしながら存在を知りませんでした…!
      () しないと開始直後にselectに渡っちゃうんですね

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中