読者です 読者をやめる 読者になる 読者になる

blechmusikの日記

キー・カスタマイズ・ソフトウェア "DvorakJ" の覚え書きをはじめとして様々なことを書いています。

コマンドライン引数を配列にまとめたうえで取得する関数

AutoHotkey

以下の get_command_argument 関数を呼び出せば、AutoHotkey (厳密には AutoHotkey_L)のコマンドライン引数を配列にまとめたうえで取得できる*1

get_command_argument(){
    global
    local arg_list := []
    
    Loop,100
    {
        if ("" != Trim(%A_Index%)){
            arg_list.insert(%A_Index%)
        }
    }
    
    return arg_list
}

たとえば、上記の get_command_argument と、つぎのように書いたスクリプトを test.ahk として保存し、コマンドプロンプトから"test.ahk hoho cococo rarara"と入力してみよう。

arg_text := ""
for i,v in get_command_argument()
    arg_text .= "[" i "]: " v "`n"
msgbox,% arg_text

return

そうすると、コマンドラインの引数の順番と内容を表示するつぎのようなダイアログがあらわれる。

コマンドラインの引数の総数を知りたいときには get_command_argument().MaxIndex() と入力すればよい。
AutoHotkey_L でコマンドライン引数を一度にすべて取得したいときには、このget_command_argument 関数を利用するとよいだろう。