起動時パラメータ

本ページには広告が含まれています。

プログラムを起動する際に、引数として渡すことができるパラメータのことを指します。

受け取った引数の型は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を実行するときに毎回ユーザーアカウント制御の確認画面が表示される場合、以下の手順で非表示にすることができます。

WinRで「ファイル名を指定して実行」を起動し、「UserAccountControlSettings」と入力し[OK]。

「ユーザー アカウント制御の設定」が起動したら、以下のようにスクロールバーを一番下の「通知しない」に下げることで非表示にすることができます。しかし、この設定を行うと他のアプリのユーザー アカウント制御も表示されなくなってしまうため注意が必要です。

アカウント制御の設定.png

「ユーザー アカウント制御の設定」は以下のプログラムでも起動できます。

UWSC
DIM Shell = CREATEOLEOBJ("Shell.Application")
Shell.FileRun

DIM ID = GETID("ファイル名を指定して実行", "#32770")
SENDSTR(ID, "UserAccountControlSettings")
CLKITEM(ID, "OK", ITM_BTN)

ショートカットから呼び出す

ショートカットからパラメータ付きでUWSファイルを呼び出すこともできます。

パラメータ付きのショートカットを作成するには、ショートカットを作成するフォルダ内で右クリック、[新規作成]-[ショートカット]を選択すると項目の場所を入力してくださいが表示されるので、以下の形式で入力します。

UWSC
<UWSC.exeの絶対パス> <呼び出すUWSCの絶対パス> <第一引数> <第二引数> <第三引数>...

例えばD:\Desktop\PARAM.uwsを呼び出しパラメータの第一引数に10、第二引数に20と指定する場合、以下のように指定します。

UWSC
C:\Program Files (x86)\UWSC\UWSC.exe" "D:\Desktop\PARAM.uws" "10" "20"

指定されたパラメータはPARAM_STRで取得できます。以下は呼び出されるPARAM.uwsです。受け取った引数の内容をMSGBOX関数で表示します。

PARAM.uws
DIM str = ""

FOR i = 0 TO LENGTH(PARAM_STR) - 1
	str = str + i + ":<#TAB>" + PARAM_STR[i] + "<#CR>"
NEXT

MSGBOX(str)

使い方

引数の数を出力

受け取った引数の数を出力します。

UWSC
PRINT LENGTH(PARAM_STR)

引数を出力

受け取った引数をすべて出力します。

UWSC
FOR item in PARAM_STR
	PRINT item
NEXT

渡された引数を超える要素にはEMPTYが格納されるので、EMPTYになるまでループする方法もあります。しかし、このやり方だとパラメータにEMPTYを渡された場合、それ以降の引数は取得できなくなります。

UWSC
DIM i = 0
WHILE PARAM_STR[i] <> EMPTY
	PRINT PARAM_STR[i]
	i = i + 1
WEND

渡された引数の合計値を求める

合計値.uws
PRINT CALCARRAY(PARAM_STR, CALC_ADD)
コマンドプロンプト
UWSC.exe 合計値.uws 1 2 3
結果
プレーンテキスト
6

引数の有無で処理分岐

UWSC
IFB LENGTH(PARAM_STR) <> 0 THEN
	// 引数があるとき
ELSE
	// 引数がないとき
ENDIF

第一引数に指定した値の数だけループ

プログラムの起動時に第一引数に指定した値の回数だけループ処理を行います。

繰り返し.uws
FOR i = 1 TO PARAM_STR[0]
	PRINT i
NEXT
コマンドプロンプト
UWSC.exe 繰り返し.uws 3
結果
プレーンテキスト
1
2
3