在VBScript中输出一个GUID会忽略它后面的所有文本

问题描述:

我正在使用TypeLib创建一个在Classic ASP应用程序中使用的GUID。但是,即使是一个简单的测试,例如将GUID写入屏幕,也会给我带来一些问题 - 它会打印出GUID,但忽略它后面的所有内容(例如HTML标签,其他文字,任何东西)。在VBScript中输出一个GUID会忽略它后面的所有文本

这里是最起码的准则来测试这一点:

Set typeLib = Server.CreateObject("Scriptlet.TypeLib") 
myGuid = typeLib.Guid 
Response.Write myGuid & " is the new GUID" 
Set typeLib = Nothing 

这将显示类似{9DDB27D1-F034-41D7-BB88-D0D811DB91CE},就是这样;文本的其余部分被忽略并且不被写出。但是,如果我硬编码该GUID值并从一个变量引用它,其余的文本显示就好了。我已经尝试显示之前显式转换为字符串值,但它仍然发生。

+0

哦谢谢上帝,有人已经有这个。 – ChristianLinnell 2009-08-25 23:06:08

我似乎已经解决我自己的问题..它被添加到文本额外的东西,所以我不得不这样做:

myGuid = Left(myGuid, Len(myGuid)-2) 

,现在输出的罚款。奇怪。

GUID是一个结构体而不是一个字符串,您需要添加一个ToString()方法将其输出为字符串。

https://msdn.microsoft.com/fr-fr/library/97af8hh4(v=vs.110).aspx

Response.Write myGuid.ToString("D") 
+0

我不认为我可以在VBScript中使用ToString;试图使用typeLib.Guid.ToString()给我一个错误。 – 2009-01-05 15:16:33

+0

检查这个 http://support.stormhosts.net/showthread.php?t=344 – Schwartser 2009-01-05 15:33:56

我使用这样的

Function GetGuid() 
     Set TypeLib = CreateObject("Scriptlet.TypeLib") 
     GetGuid = Left(CStr(TypeLib.Guid), 38) 
     Set TypeLib = Nothing 
End Function 

它增加了一个vbNullChar或CHR(0)的GUID的末尾。替换(myGuid,Chr(0),“”)将修复它。比使用Left或Mid功能更好。