¿Cómo generar un GUID en VBScript?
Pregunta
Quiero generar cadenas GUID en VBScript. Yo sé que no hay incorporado en función de VBScript para generar una. No quiero utilizar GUID generado por el azar. Tal vez hay un objeto ActiveX que se pueden crear utilizando CreateObject () que es seguro para ser instalado en las versiones de Windows (nuevos) que pueden generar un GUID?
Solución
¿Cómo puedo crear un GUID utilizando un script? (En: ¡Eh, chicos del scripting Blog) dice lo siguiente:
Set TypeLib = CreateObject("Scriptlet.TypeLib")
Wscript.Echo TypeLib.Guid
Sin embargo, tenga en cuenta que Scriptlet.TypeLib.Guid devuelve una cadena terminada en cero, lo que puede causar que algunas cosas que ignorar todo después de que el GUID . Para corregir esto, puede que tenga que utilizar:
Set TypeLib = CreateObject("Scriptlet.TypeLib")
myGuid = TypeLib.Guid
myGuid = Left(myGuid, Len(myGuid)-2)
Wscript.Echo myGuid
Otros consejos
Function CreateGUID
Dim TypeLib
Set TypeLib = CreateObject("Scriptlet.TypeLib")
CreateGUID = Mid(TypeLib.Guid, 2, 36)
End Function
Esta función devolverá una llanura GUID, por ejemplo, 47BC69BD-06A5-4617-B730-B644DBCD40A9
.
Si quieres un GUID en un formato de registro, por ejemplo, {47BC69BD-06A5-4617-B730-B644DBCD40A9}
, cambie la última línea de la función
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
Puede Gen GUID aleatorio través de este objeto => "Scriptlet.Typelib"
Ayuda Enlace => Con ... Fin
Aquí es mi manera =
With CreateObject("Scriptlet.TypeLib")
'' For Del This = {}
WSH.Echo mid(.Guid ,2, 36)
WSH.Echo (.Guid)
End With