Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Problems with escaping ' with WMI query

621 views
Skip to first unread message

bry...@gmail.com

unread,
Sep 11, 2007, 12:31:02 PM9/11/07
to
I am trying to fix some code that MS released to recursively list
files in folders (http://www.microsoft.com/technet/scriptcenter/
resources/qanda/feb05/hey0218.mspx) so that it handles ' and } when
they are in the paths. I have been successful with the } but the ' is
giving me fits! Here's the offending line:

Set colSubfolders2 = objWMIService.ExecQuery _
("Associators of {Win32_Directory.Name='" & strFolderName &
"'} " _
& "Where AssocClass = Win32_Subdirectory " _
& "ResultRole = PartComponent")

When the query is:
Associators of {Win32_Directory.Name='d:\\inetpub\\content\\india
photos\\john'} Where AssocClass = Win32_Subdirectory ResultRole =
PartComponent
Everything works fine.

When I try to escape the ' in mike's pix I get the error below
Associators of {Win32_Directory.Name='d:\\inetpub\\content\\india
photos\\mike\'s pix'} Where AssocClass = Win32_Subdirectory ResultRole
= PartComponent
C:\Temp\test2.vbs(46, 5) (null): 0x8004103A

Am I not escaping the ' correctly?

Sam Hobbs

unread,
Sep 12, 2007, 2:59:03 AM9/12/07
to
I would change that code to something such as:

Query = "Associators of {Win32_Directory.Name='" & strFolderName & "'} " _


& "Where AssocClass = Win32_Subdirectory " _
& "ResultRole = PartComponent"

MsgBox Query
Set colSubfolders = objWMIService.ExecQuery(Query)


So I could see what I actually get. I could see if the escaped characters
are processed as I assume they would be.

My guess is that you are confusing JavaScript with VBScript. I do not
remember if WMI uses the backslash as an escape character but VBScript does
not.


<bry...@gmail.com> wrote in message
news:1189528262.5...@r29g2000hsg.googlegroups.com...

David Brown

unread,
Sep 12, 2007, 3:24:01 AM9/12/07
to
Hello bry...@gmail.com,

I found someone else with the same problem:
http://www.scriptinganswers.com/forum2/forum_posts.asp?TID=1028&PID=6176

Rather than using the single-quote (') as a delimiter, you can use the double-quote
(") if you escape it. In VBS you escape a character by doubling it, so ""
. For some reason, this seems to work better in this situation.

Using the following revision, I was able to get folders with ' or } in them,
but I had to escape the backslashes ( \\ )

strFolderName = "c:\\quote_test\\b{o't}h"

bry...@gmail.com

unread,
Sep 12, 2007, 11:20:35 AM9/12/07
to

Thanks David, I was able to make a few modifications based on your
comments and get a working script!

0 new messages