Computer Performance, Logon Scripts

Code Error 800A0409 - Unterminated string constant

Troubleshooting Code 800A0409 - Unterminated string constant

An easy error to cure, especially if you count the Char: number.  Naturally, start at the beginning of the line referenced in the error message.  Solving 800A0409 really is that easy.

Introduction to error Code 800A0409

This error code, 800A0409 usually occurs when you execute a VBScript.  Most likely you have left out a closing speech mark or bracket.

The Symptoms you get Code 800A0409 - Error Unterminated string constant

Windows Scripting host generates a message box like this.  The script does not execute as you would have hoped.  A possible scenario is that you are trying to create a Windows logon script.

The Cause of Error 800A0409

Your VBScript lacks a closing punctuation mark at the end of a line.  If I could emphasise, look at the end of the line not the beginning.  To help you, pay close attention to the Char: number, in my example, 57.  One nasty variation of Error 800A0409 is where you mix up single and double quote marks.

Source: Microsoft VBScript compilation error, which means it a syntax error in your script, rather than a runtime error.

The Solution

Check the syntax of your script, particularly for closing statements, speech marks or brackets.  Look for clues, count all the lines including blank lines and 'REM lines.  In this example the problem is at Line:2.  In this case the Char: number (57) is particularly useful for identifying the missing speech mark.

If you are still stuck then a good script editor really would help this type of problem because it color codes the commands.  Free download of OnScript.

Example Script for error 800A0409

Set WshNetwork = WScript.CreateObject("WScript.Network)  Missing speech mark
Set WshNetwork = WScript.CreateObject("WScript.Network")  Corrected version
 

Set WshShell = WScript.CreateObject("WScript.Shell")
Set WshNetwork = WScript.CreateObject("WScript.Network)
Set AllDrives = WshNetwork.EnumNetworkDrives()

DriveLetter = "N:" 'must be capitalized
RemotePath = "\\alan\home"

AlreadyConnected = False
For i = 0 To AllDrives.Count - 1 Step 2
If AllDrives.Item(i) = DriveLetter Then AlreadyConnected = True
Next

If AlreadyConnected = False then
WShNetwork.MapNetworkDrive DriveLetter, RemotePath
WshShell.PopUp "Drive " & DriveLetter & " connected oK."

Else
WShNetwork.RemoveNetworkDrive DriveLetter
WshShell.PopUp "Drive " & DriveLetter & " disconnected."
End if
 

 


Computer Training Software - Recommended Training VideosGuy Thomas recommends Computer Training Software.  Their topics and material are ideal for getting you started with VBScript.  The videos are easy to follow and you can control the pace.  Try their free demo material and then see if you want to buy the full package. See more about VB Script Training CD.


Do you have a good example of this error?  If so, then email me I will publish it with a credit to you:

Do you need extra help?

For interpreting the WSH messages check Diagnose 800 errors.

For general advice try my 7 Troubleshooting techniques

 

 *


Google

WebComputerperformance.co.uk

GFi Events Manager

Guy Recommends: GFi EventsManager

Here is a solution to monitor, manage and archive thousands of events that are generated by devices across your entire network.  Get your free evaluation copy of GFI EventsManager.

 

Home Copyright © 1999-2008 Computer Performance LTD All rights reserved

Please report a broken link, or an error.