HTA
引数取得2015/12/30
HTAで実行時の引数を取得してみた。
htaファイルへのショートカットを作成し、
リンク先を「パス 引数」とすることで動作する。
引数は複数指定することもできる。
ショートカットを「パス test こんにちは」と指定した場合、下記のように表示される。

【課題】
抽出アルゴリズム上、引数に「"hello world"」のように、
ダブルクォーテーションと半角スペースを混ぜたものはを組み合わせたものは使用できない。
<html>
<head>
<meta charset="UTF-8">
<title>コマンドライン引数取得</title>
<HTA:APPLICATION
ID="objHTA"
SINGLEINSTANCE="yes"
>
<script Language="VBScript">
Sub Window_onLoad
full_str = objHTA.commandLine 'コマンドラインの文字列取得
str_start = 1 'パスの先頭
str_end = InStr(2, full_str, """") 'パスの末尾
str_end = str_end + 1 'パスの直後のスペース分加算
m = Mid(full_str, str_start, str_end) 'パス部分を取得
param_str = replace(full_str, m, "") 'パス部分を削除
params_arr = Split(param_str, " ") '引数部分を半角スペースで分離
result = "" '結果を初期化
For i=0 To Ubound(params_arr) '引数の数だけ繰り返す
result = result & vbCr & "引数" & i+1 & ":" & params_arr(i) '結果に追加
Next
MsgBox result '結果を表示
End Sub
</script>
</head>
<body>
</body>
</html>