Perhaps instead of 'Expected Statement', 'missing character' would be a better error message. I have noticed
with error 800A0400 how often the problem is at the beginning or the end of the line mentioned in the error message.
Introduction to Code 800A0400
Error code 800A0400 is a generic message when you execute a VBScript. A wild guess, you have missed a
command at the beginning of a line.
The Symptoms You Get
The script does not execute as you had hoped. Instead you get a message
box like this picture:
The Cause of Error 800A0400
Your VBScript contain is missing a statement. This is a difficult
error to track down. However, the good news is that I have three examples. Most likely you have placed a statement,
which is not appropriate for the logic of your script. For example,
extra brackets, or missing command.
Note: the clue
'Source: Microsoft VBScript compilation error'. My point is that 'compilation error' and not a 'runtime error', means this is a syntax error in
your script.
The Solution for Error: Expected statement
The Windows Scripting Host gives us two useful clues, firstly, look on
Line: 10, do count any remark or empty lines. Secondly, the Char: number
1, is useful in tracing the error. In this case there is something
wrong with the Select statement.
The line number, as is so often the case, is crucial to solving this
error. The problem is that the whole line is gibberish to the VBScript
engine. So take another look at each word, punctuation and see if you
can spot a simple error.
‡
Example 1 of Error code: 800A0400
Missing underscore at the end of the line 7:
' WSHname.vbs ' Sample VBScript to check WSH Version ' Author Guy Thomas http://computerperformance.co.uk/ ' Version 2.3 - September 2010
' ------------------------------------------------------- On Error Resume Next WScript.Echo "WSH Version: " & WScript.Version & " " & WScript.BuildVersion & vbcr & "File name: "
WScript.ScriptName WScript.Quit
' WSHname.vbs ' Sample VBScript to check WSH Version ' Author Guy Thomas http://computerperformance.co.uk/ ' Version 2.3 - September 2010
' ------------------------------------------------------- On Error Resume Next WScript.Echo "WSH Version: " & WScript.Version & " " & _ WScript.BuildVersion & vbcr & "File name: "
WScript.ScriptName WScript.Quit
Guy Recommends: A Free Trial of the Network Performance Monitor
(NPM)
SolarWinds'
Orion performance monitor
will help you discover what's happening on your network. This
utility will also guide you through troubleshooting; the dashboard will
indicate whether the root cause is a broken link, faulty equipment or
resource overload.
What I like best is the way NPM suggests solutions to network
problems. Its
also has the ability to monitor the health of individual VMware
virtual machines. If you are interested in troubleshooting, and creating
network maps, then I recommend that you try NPM now.
Talk about stupid errors, there is no ' apostrophe to Rem out that line of
dashes.
Actual
------------------------
Should be:
' -----------------------------
'The script
is below, and the pclist.txt contain only 2 line:
' mainsrv
' computer1
--------------------------------------------------------
Const ForReading = 1
Set objDictionary = CreateObject("Scripting.Dictionary")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile _
("e:\scripts\pclist.txt", ForReading)
i = 0
Do Until objTextFile.AtEndOfStream
strNextLine = objTextFile.Readline
objDictionary.Add i, strNextLine
i = i + 1
Loop
For Each objItem in objDictionary
StrComputer = objDictionary.Item(objItem)
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer& "\root\cimv2")
Set colServices = objWMIService.ExecQuery _
("SELECT * FROM Win32_Service")
Wscript.Echo strComputer, colServices.Count
Next
Example 3 of 800A0400 (Code available)
I just plain missed command, for example no 'Set'.
This
Engineer's Toolset v10 provides a comprehensive console of 50 utilities
for troubleshooting computer problems. Guy says it helps me
monitor what's occurring on the network, and each tool teaches me more about how the
underlying system operates.
There are so many good gadgets; it's like having free rein of a
sweetshop. Thankfully the utilities are displayed logically: monitoring,
network discovery, diagnostic, and Cisco tools. Try the SolarWinds Engineer's Toolset now!
The 800A0400 error message in VBScript often appears when the user adds a
"End" statement when there is no need for one. For example, in this script,
the user puts "End If", when there is no If statement to end.
MsgBox "Click OK to continue" Input = InputBox("Type your name")
End If
There was no need for the user to put "End If", so the script host says
that the user needs to put an 'If' statement, but wouldn't it make much more
sense if it told the user to delete the 'End If' statement?
Thus utility makes it easy to check the health of a router or firewall. Check the real-time performance and availability statistics for any device
on your network.