Jump to content
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble

MSFN is made available via donations, subscriptions and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. Alternatively, register and become a site sponsor/subscriber and ads will be disabled automatically. 



Sign in to follow this  
Maelstorm

VBS Arguments?

Recommended Posts

I have the following code:

Set WshShell = WScript.CreateObject ("WScript.Shell")

wscript.echo "Argument Count", wscript.arguments.count

For I = 0 to wscript.arguments.count - 1
 Wscript.Echo wscript.arguments.item(I)
Next

set cdrom = wscript.arguments.item(0)
set basedir = wscript.arguments.item(1)

wscript.echo cdrom, basedir

When I run it from the command line I get the following output:

G:\Deployment\CDROM\INSTALL>cscript.exe test.vbs g: g:\deployment\cdrom\install

Microsoft ® Windows Script Host Version 5.6

Copyright © Microsoft Corporation 1996-2001. All rights reserved.

Argument Count 2

g:

g:\deployment\cdrom\install

G:\Deployment\CDROM\INSTALL\

test.vbs(9, 1) Microsoft VBScript runtime error: Object required: '[string: "g:"]'

Why? I thought that the item is a string value, but it doesn't seem to like it. What I'm trying to do is to make a VBScript to install software that requires user input, but also takes arguments as to where the install executable is located. Here's what I have so far for lookout120.exe, which gives the same type of error:

Set WshShell = WScript.CreateObject ("WScript.Shell")
Set Ag = Wscript.Arguments

' Process command line arguments
if Ag.count < 2 Then
 WScript.Echo "Command Line Error.  Need <CDROM> <Base Dir>" & vbcrlf
 WScript.Quit
End if

set cdrom = Ag.item(0)
set basedir = Ag.item(1)

' execute program
WshShell.Run (basedir & "\COMPONENT\LOOKOUT\LookOut120.exe /S")

' wait for startup and then start sending keystrokes
WScript.Sleep 5000
WshShell.SendKeys "{SPACE}"

' Wait for install to finish
WScript.Sleep 10000

' Quit
WScript.Quit

What am I doing wrong?

Share this post


Link to post
Share on other sites

remove the set statement from the cdrom and basedir lines.

Set WshShell = WScript.CreateObject ("WScript.Shell")
Set Ag = Wscript.Arguments

' Process command line arguments
if Ag.count < 2 Then
WScript.Echo "Command Line Error.  Need <CDROM> <Base Dir>" & vbcrlf
WScript.Quit
End if

cdrom = Ag.item(0)
basedir = Ag.item(1)

' execute program
WshShell.Run (basedir & "\COMPONENT\LOOKOUT\LookOut120.exe /S")

' wait for startup and then start sending keystrokes
WScript.Sleep 5000
WshShell.SendKeys "{SPACE}"

' Wait for install to finish
WScript.Sleep 10000

' Quit
WScript.Quit

Share this post


Link to post
Share on other sites

Ok, I see what it's complaining about now. Normally, I wouldn't fess up to it, but you helped me. I didn't correctly interpret Microsoft's documentation. Set is used to assign an object reference to a variable or property. I was trying to assign a regular value to it. Now at least I know why it wasn't working.

Thanks for the tip.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×