目次
プログラムを起動する際に、引数として渡すことができるパラメータのことを指します。
受け取った引数の型はUNICODE文字列のため、計算など数値として扱う場合には注意が必要です。
「ユーザー アカウント制御」でデバイスの変更を拒否すると、「アクセスは拒否されました」と出力されます。
- 構文
- // 呼び出す側
CALL UWSCファイル名( 引数1, 引数2, … )
// 呼び出される側
PARAM_STR[n]
n = 0, 1, …
- 引数
- 戻り値
コマンドプロンプトから呼び出し
UWSC.exeのパスが通っていれば以下のように呼び出せます。
UWSC 呼び出すUWSCファイル名 引数1 引数2 引数3 …
UWSCファイル名は絶対パスまたは相対パスで指定します。
ディレクトリを変更する場合は、以下のように指定します。
CD ディレクトリ名
ドライブが違う場合は、以下のように指定します。
pushd ドライブ名
以下は、「D:\Desktop\called.uws」に引数「1」,「2」,「3」を渡して呼び出す例。
C:\Windows\System32>pushd D:\
D:\Desktop>UWSC called.uws 1 2 3
パスが通っているか確認する方法
コマンドプロンプトを起動して「UWSC」と入力しEnterを押したとき、以下の文章が表示された場合はパスが通っていません。
C:\Users\username>UWSC
'UWSC' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
その場合は、「UWSC.exe」がある以下のディレクトリをPathに追加します。
C:\Program Files\UWSC
「コントロールパネル > システムとセキュリティ > システム」で「設定 > システム > 詳細情報」が開くので、右側にある関連設定の「システムの詳細設定」をクリックします。
「システムのプロパティ」の詳細設定タブから「環境変数」をクリックして開いた「システム環境変数」のPath変数にUWSCのディレクトリを追加します。
ユーザーアカウント制御の設定
UWSCを実行するときに毎回ユーザーアカウント制御の確認画面が表示される場合、以下の手順で非表示にすることができます。
Win+Rで「ファイル名を指定して実行」を起動し、「UserAccountControlSettings」と入力し[OK]。
「ユーザー アカウント制御の設定」が起動したら、以下のようにスクロールバーを一番下の「通知しない」に下げることで非表示にすることができます。しかし、この設定を行うと他のアプリのユーザー アカウント制御も表示されなくなってしまうため注意が必要です。
「ユーザー アカウント制御の設定」は以下のプログラムでも起動できます。
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.FileRun
DIM ID = GETID("ファイル名を指定して実行", "#32770")
SENDSTR(ID, "UserAccountControlSettings")
CLKITEM(ID, "OK", ITM_BTN)
ショートカットから呼び出す
ショートカットからパラメータ付きでUWSファイルを呼び出すこともできます。
パラメータ付きのショートカットを作成するには、ショートカットを作成するフォルダ内で右クリック、[新規作成]-[ショートカット]を選択すると項目の場所を入力してくださいが表示されるので、以下の形式で入力します。
<UWSC.exeの絶対パス> <呼び出すUWSCの絶対パス> <第一引数> <第二引数> <第三引数>...
例えばD:\Desktop\PARAM.uwsを呼び出しパラメータの第一引数に10、第二引数に20と指定する場合、以下のように指定します。
C:\Program Files (x86)\UWSC\UWSC.exe" "D:\Desktop\PARAM.uws" "10" "20"
指定されたパラメータはPARAM_STRで取得できます。以下は呼び出されるPARAM.uwsです。受け取った引数の内容をMSGBOX関数で表示します。
DIM str = ""
FOR i = 0 TO LENGTH(PARAM_STR) - 1
str = str + i + ":<#TAB>" + PARAM_STR[i] + "<#CR>"
NEXT
MSGBOX(str)
使い方
引数の数を出力
受け取った引数の数を出力します。
PRINT LENGTH(PARAM_STR)
引数を出力
受け取った引数をすべて出力します。
FOR item in PARAM_STR
PRINT item
NEXT
渡された引数を超える要素にはEMPTYが格納されるので、EMPTYになるまでループする方法もあります。しかし、このやり方だとパラメータにEMPTYを渡された場合、それ以降の引数は取得できなくなります。
DIM i = 0
WHILE PARAM_STR[i] <> EMPTY
PRINT PARAM_STR[i]
i = i + 1
WEND
渡された引数の合計値を求める
PRINT CALCARRAY(PARAM_STR, CALC_ADD)
UWSC.exe 合計値.uws 1 2 3
- 結果
6
引数の有無で処理分岐
IFB LENGTH(PARAM_STR) <> 0 THEN
// 引数があるとき
ELSE
// 引数がないとき
ENDIF
第一引数に指定した値の数だけループ
プログラムの起動時に第一引数に指定した値の回数だけループ処理を行います。
FOR i = 1 TO PARAM_STR[0]
PRINT i
NEXT
UWSC.exe 繰り返し.uws 3
- 結果
1 2 3