D:\temp>cscript test.vbs first Microsoft (R) Windows Script Host Version 5.8 Copyright (C) Microsoft Corporation 1996-2001. All rights reserved. 引数が1個渡されました。 指定可能な引数の数は 2 個なので処理を中止します。
引数を受け取る方法
スポンサーリンク
VBScript で起動時に指定された引数を取得するには Wscript.Arguments プロパティに格納された WshArguments コレクションを使用します。
以下の書式で引数の値を取得することができます。
VBScript(書式) | |
1 2 3 4 5 | '1 個目の引数はインデックス 0 に格納される。 変数 = Wscript.Arguments(0) '2 個目の引数 変数 = Wscript.Arguments(1) |
必須の引数の個数が固定されている場合
コマンドラインから渡すべき引数の数が決まっている場合は、 Wscript.Arguments.Count を使用して正しい数の引数が渡されているかを確認できます。
引数の数を確認し、正しい場合のみ処理を実行するサンプルコードは次の通りです。
VBScript(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Option Explicit Dim intArgsCount intArgsCount = Wscript.Arguments.Count '引数の数を取得し数が合わなければ処理を中止する。 If intArgsCount <> 2 Then WScript.Echo "引数が" & intArgsCount & "個渡されました。" & vbCrLf _ & "指定可能な引数の数は 2 個なので処理を中止します。" '処理を中断 WScript.Quit End If WScript.Echo "処理開始" WScript.Echo "1 個目の引数の値:" & Wscript.Arguments(0) WScript.Echo "2 個目の引数の値:" & Wscript.Arguments(1) |
誤った引数の数で実行した結果と、正しい引数の数で実行した結果は次の通りです。
D:\temp>cscript test.vbs first second Microsoft (R) Windows Script Host Version 5.8 Copyright (C) Microsoft Corporation 1996-2001. All rights reserved. 処理開始 1 個目の引数の値:first 2 個目の引数の値:second
一部の引数のみ必須の場合
例えば最初の 2 個の引数が必須で、残りの 2 個の引数は任意(最大 4 個の引数を指定可能)なスクリプトのサンプルコードは次の通りです。
VBScript(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | Option Explicit Dim intArgsCount Dim strArg1 Dim strArg2 Dim strArg3 Dim strArg4 intArgsCount = Wscript.Arguments.Count '必須の引数が指定されているかを確認し、足りなければ処理を中断。 If intArgsCount <= 1 Then WScript.Echo "引数が" & intArgsCount & "個渡されました。" & vbCrLf _ & "最低 2 個の引数が必要なので処理を中止します。" '処理を中断 WScript.Quit End If '引数の数が多すぎないかを確認し、多すぎれば処理を中断。 If intArgsCount >= 5 Then WScript.Echo "引数が" & intArgsCount & "個渡されました。" & vbCrLf _ & "引数は最大 4 個までなので処理を中止します。" '処理を中断 WScript.Quit End If strArg1 = Wscript.Arguments(0) strArg2 = Wscript.Arguments(1) '任意の引数はセットされている場合のみ取得する If intArgsCount >= 3 Then strArg3 = Wscript.Arguments(2) End If If intArgsCount >= 4 Then strArg4 = Wscript.Arguments(3) End If WScript.Echo "処理開始" WScript.Echo "1 個目の引数:" & strArg1 WScript.Echo "2 個目の引数:" & strArg2 WScript.Echo "3 個目の引数:" & strArg3 WScript.Echo "4 個目の引数:" & strArg4 |
上記スクリプトに引数を 1 個~ 5 個渡してみた処理結果は次の通りです。
D:\temp>cscript test.vbs 1個目 Microsoft (R) Windows Script Host Version 5.8 Copyright (C) Microsoft Corporation 1996-2001. All rights reserved. 引数が1個渡されました。 最低 2 個の引数が必要なので処理を中止します。
D:\temp>cscript test.vbs 1個目 2個目 Microsoft (R) Windows Script Host Version 5.8 Copyright (C) Microsoft Corporation 1996-2001. All rights reserved. 処理開始 1 個目の引数:1個目 2 個目の引数:2個目 3 個目の引数: 4 個目の引数:
D:\temp>cscript test.vbs 1個目 2個目 3個目 Microsoft (R) Windows Script Host Version 5.8 Copyright (C) Microsoft Corporation 1996-2001. All rights reserved. 処理開始 1 個目の引数:1個目 2 個目の引数:2個目 3 個目の引数:3個目 4 個目の引数:
D:\temp>cscript test.vbs 1個目 2個目 3個目 4個目 Microsoft (R) Windows Script Host Version 5.8 Copyright (C) Microsoft Corporation 1996-2001. All rights reserved. 処理開始 1 個目の引数:1個目 2 個目の引数:2個目 3 個目の引数:3個目 4 個目の引数:4個目
D:\temp>cscript test.vbs 1個目 2個目 3個目 4個目 5個目 Microsoft (R) Windows Script Host Version 5.8 Copyright (C) Microsoft Corporation 1996-2001. All rights reserved. 引数が5個渡されました。 引数は最大 4 個までなので処理を中止します。
スポンサーリンク
- VBScript
- ソースコード上で1行の処理を改行する方法
- 文字列に改行を挿入する方法
- 文字列の一部を置換する方法
- エラー一覧とエラー処理のサンプルコード
- 当月月初、翌月月初、前月月初の日付を取得する方法
- 当月月末、翌月月末、前月月末の日付を取得する方法
- GUI と CUI のどちらで実行されたかを判定する方法
- 引数の数を取得する方法
- 引数を受け取る方法
- 引数に半角スペースを含める方法
- yyyymmdd 形式の文字列で現在日付を取得する方法
- ワードファイルをテキストファイルに変換して出力する方法
- 時間を指定して実行を一時停止する方法
- 別のVBScriptファイルを実行して戻り値を受け取る方法
- 別のVBScriptファイルを実行する方法
- 別のVBScriptファイルに引数を渡して実行する方法
- 配列のサイズを動的に変更する方法
- 実行中のスクリプトのファイル名・フルパスを取得する方法
- For Each で配列の全ての要素を処理する方法
- 配列の要素数を取得する方法
- 配列の要素を1つずつ処理する
- 配列を結合して CSV や TSV などの文字列にする方法
- ファイル・フォルダ操作
- フォルダ内のファイル一覧を取得する
- フォルダ内のフォルダ一覧を取得する
- ファイルの拡張子を調べて、拡張子ごとに処理を分ける方法
- ファイルをコピーする方法
- 拡張子無しのファイル名を取得する方法
- CSV ファイルを TSV ファイルや他の区切り文字列に変換する方法
- ファイルの内容を1つの文字列として一括で読み込む方法
- フォルダ内のファイル数を取得する方法
- ファイルの内容を1行ずつ読み込む方法