85

How can I pass and access command line arguments in VBscript?

3 Answers 3

91
Set args = Wscript.Arguments

For Each arg In args
  Wscript.Echo arg
Next

From a command prompt, run the script like this:

CSCRIPT MyScript.vbs 1 2 A B "Arg with spaces"

Will give results like this:

1
2
A
B
Arg with spaces
1
  • 21
    You can access it directly with WScript.Arguments.Item(0). Item 0 is not the command's name (as it is in other languages); in Aphoria's example above it would be the string "1". Commented Aug 6, 2013 at 19:24
63

If you need direct access:

WScript.Arguments.Item(0)
WScript.Arguments.Item(1)
...
2
  • 4
    You can also drag and drop a file onto a script in Explorer, which will run the script with the first argument set to the file path and name. Commented Apr 16, 2016 at 13:07
  • 7
    You might want to use WScript.Arguments.Count with this.
    – BuvinJ
    Commented Dec 9, 2016 at 16:39
0

@Jerther is almost correct. Direct access is done like so:

WScript.Arguments(0)
WScript.Arguments(1)

(I would have just commented on their answer, but am not deemed reputable enough.) Anyway, this is how I had to write it to get it to work.

2
  • Actually, both you and Jerther are correct. There IS an Item property on the WScript.Argument interface and it is also a default property. It is your choice whether to give it explicitly as per Jerther's answer or to omit it and it will be used implicitly, as in your case. If you're interested see DISPID_VALUE in learn.microsoft.com/en-us/previous-versions/windows/desktop/… Commented Aug 23, 2024 at 7:07
  • All I know is the script does not work with WScript.Arguments.Item(0) in it, and does without it. Commented Aug 24, 2024 at 14:04

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.