- Introduction
- Introduction to VBScript
- Tools Used with VBScript
- The VBScript Language
- Using VBScript in Internet Explorer
- The Windows Scripting Host
- From Here...
The Windows Scripting Host
In addition to VBScript's multiple uses on the Internet, Microsoft has also recently touted VBScript as a replacement for batch files. By installing the Windows Scripting Host, available for free at http://www.microsoft.com/scripting, you can run VBScript commands from an MS-DOS Prompt window or Windows Explorer. The VBScript code itself is created in a text editor and stored in a file with a VBS extension.
Running Scripts
The Windows Scripting Host actually installs two hosts that can run VBScript code: CSCRIPT.EXE, which is designed for use in an MS-DOS Prompt window; and WSCRIPT.EXE, which is designed for execution from Windows.
To demonstrate the difference, create a VBS file that uses the WScript.Echo method, as in the following example:
WScript.Echo "Hello, world!"
Executing the preceding statement with CScript causes "Hello, world!" to be printed in the MS-DOS Prompt window. WScript, on the other hand, presents the text in a message box.
The simplest way of executing a script is to supply the script filename as a parameter to either of the preceding executables:
CScript.exe d:\scripts\test.vbs
You can also just double-click a script file in Windows Explorer. However, several command-line options are available for the Scripting Host, as listed in Table 30.5. These options must be preceded by two forward slashes (//) in the command line.
Table 30.5
Scripting Host Parameters
Parameters |
Description |
//B and //I |
Select batch or interactive mode. Batch mode does not display any prompts. |
//logo and //nologo |
Control display of Microsoft copyright information. |
//T:nn |
Determines a script timeout in seconds. The script is stopped if execution time exceeds the timeout value. |
//H:CScript |
Makes CScript the host associated with your script files. |
//H:WScript |
Makes WScript the host associated with your script files. |
//S |
Saves these options (for the current Windows user only). |
You can also place the options in Table 30.5 in a WSH file. A WSH file is like a PIF file for batch files; it contains the options in INI-file format:
[ScriptFile] Path=D:\scripts\test.vbs [Options] Timeout=10 DisplayLogo=0 BatchMode=0
Any arguments passed to the script itself are included after the Scripting Host options and script filename. You can retrieve them by using the Arguments collection of the Wscript object:
Dim nCount nCount = WScript.Arguments.Count WScript.Echo "There are " & nCount & " arguments." For i = 0 to nCount - 1 Wscript.Echo WScript.Arguments(i) Next
Useful Objects and Methods
The usefulness of any object library depends on the types of objects and methods it exposes to the programmer. Because the Windows Scripting Host is intended to replace or supplement batch files, it includes many useful features for accessing the operating system, including the following:
-
Creating desktop shortcuts
-
Mapping network drives
-
Accessing the Registry
-
Working with automation objects
-
Working with NT 5.0 user accounts
You can download sample code to perform all the tasks in the preceding list, along with complete documentation for the Windows Scripting Host, from the Microsoft Web site. Three main objects let you perform these tasks. You have already seen the WScript object in sample code. The WScript object is available directly from VBScript.
NOTE
The Windows Scripting Host, along with documentation and examples, can be downloaded from the Microsoft Scripting Technology Web page at http://www.microsoft.com/scripting.
Two other objects, Shell and Network, must be referenced through WScript by using the CreateObject function. For example, the following script uses the Run method of the Shell object to run a program and wait for it to finish:
Dim WshShell Set WshShell = WScript.CreateObject("WScript.Shell") 'first parameter is Window Style, second is Wait WshShell.Run "notepad",1,True MsgBox "Done!"
As you work with the Windows Scripting Host, you will see that it contains tremendous power to automate Windows-based tasks.