1

1 つ以上の引数を渡すスクリプトを作成しています。スクリプトは 1 つの引数では問題なく動作しますが、複数の引数では失敗します。

これは私が持っているコードです:

Set WshShell = WScript.CreateObject("WScript.Shell") 
strCommand = Wscript.Arguments(0) & " " & Wscript.Arguments(1) 
WshShell.Run(strCommand)

実行するscript.vbs notepad 1と動作しますが、実行するscript.vbs notepadと失敗します。

私はウェブで検索し、さまざまなスクリプトを変更しようとしましたが、どれも機能しなかったため、途中で助けが必要です。

4

1 に答える 1

0

WSCript.Arguments(n) にアクセスする前に、WScript.Arguments.Count を見て、引数 n があるかどうかを確認する必要があります。

Option Explicit
Dim oWAU : Set oWAU = WScript.Arguments.Unnamed
Dim sArg1 : sArg1 = ""
Dim nArg2 : nArg2 = 1
If 1 <= oWAU.Count Then sArg1 = oWAU(0)
If 2 <= oWAU.Count Then nArg2 = CLng(oWAU(1))
WScript.Echo sArg1, nArg2

出力:

args.vbs notepad
notepad 1

args.vbs notepad 4
notepad 4
于 2013-11-05T09:16:50.050 に答える