在VBScript中输出GUID会忽略其后的所有文本
-
03-07-2019 - |
题
我正在使用TypeLib创建一个用于Classic ASP应用程序的GUID。然而,即使是一个简单的测试,例如将GUID写到屏幕上也会给我带来问题 - 它会打印GUID但忽略其后的所有内容(例如HTML标签,附加单词,任何内容)。
以下是测试此内容的基本代码:
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值并从变量引用它,则其余文本看起来很好。我在显示之前尝试过显式转换为String值,但它仍然会发生。
解决方案
我似乎已经解决了我自己的问题..它在文本中添加了额外的东西,所以我不得不这样做:
myGuid = Left(myGuid, Len(myGuid)-2)
现在输出正常。奇怪。
其他提示
我使用类似的东西
Function GetGuid()
Set TypeLib = CreateObject("Scriptlet.TypeLib")
GetGuid = Left(CStr(TypeLib.Guid), 38)
Set TypeLib = Nothing
End Function
它在GUID的末尾添加了一个vbNullChar或Chr(0)。替换(myGuid,Chr(0),"")将修复它。比使用左或中功能更好。
GUID是结构而不是字符串,您需要添加ToString()方法以将其作为字符串输出。
https://msdn.microsoft。 COM / FR-FR /库/ 97af8hh4(v = vs.110)的.aspx
Response.Write myGuid.ToString("D")
不隶属于 StackOverflow