我想在 VBScript 中生成 GUID 字符串。我知道 VBScript 中没有内置函数来生成一个。我不想使用随机生成的 GUID。也许有一个可以使用 CreateObject() 创建的 ActiveX 对象,该对象肯定会安装在可以生成 GUID 的(较新)Windows 版本上?

有帮助吗?

解决方案

如何使用脚本创建 GUID?(在:嘿,脚本专家!博客) 说:

Set TypeLib = CreateObject("Scriptlet.TypeLib")
Wscript.Echo TypeLib.Guid

但是,请注意 Scriptlet.TypeLib.Guid 返回一个以 null 结尾的字符串,这可能会导致某些情况发生 忽略 GUID 之后的所有内容. 。要解决这个问题,您可能需要使用:

Set TypeLib = CreateObject("Scriptlet.TypeLib")
myGuid = TypeLib.Guid
myGuid = Left(myGuid, Len(myGuid)-2)
Wscript.Echo myGuid

其他提示

Function CreateGUID
  Dim TypeLib
  Set TypeLib = CreateObject("Scriptlet.TypeLib")
  CreateGUID = Mid(TypeLib.Guid, 2, 36)
End Function

该函数将返回一个普通的GUID,例如47BC69BD-06A5-4617-B730-B644DBCD40A9

如果您在注册表中的格式希望GUID,例如,{47BC69BD-06A5-4617-B730-B644DBCD40A9},函数的最后一行改为

CreateGUID = Left(TypeLib.Guid, 38)
' Returns a unique Guid on every call. Removes any cruft.
Function CreateGuid()
    CreateGuid = Left(CreateObject("Scriptlet.TypeLib").Guid,38)
End Function
Set tlib = Server.CreateObject("Scriptlet.TypeLib")
strGuid = tlib.Guid

您可以通过此对象生成随机 GUID =>“Scriptlet.TypeLib”

帮助链接=> 与...结束

这是我的方式=

With CreateObject("Scriptlet.TypeLib")
'' For Del This = {}
 WSH.Echo mid(.Guid ,2, 36)
 WSH.Echo (.Guid)
End With
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top