Wie eine GUID in VBScript generieren?
Frage
Ich möchte GUID-Strings in VBScript erzeugen. Ich weiß, dass es keine integrierte Funktion in VBScript für eine Erzeugung. Ich will nicht zufällig generierte GUIDs verwenden. Vielleicht gibt es ein ActiveX-Objekt, das mit Create erstellt werden kann (), die sicher ist (neue) Windows-Versionen installiert werden, die eine GUID erzeugen kann?
Lösung
Wie kann ich eine GUID erstellen Skript? (In: Hey, Scripting Guy Blog) sagt dieser:
Set TypeLib = CreateObject("Scriptlet.TypeLib")
Wscript.Echo TypeLib.Guid
Beachten Sie jedoch, dass Scriptlet.TypeLib.Guid einen nullterminierten String zurückgibt, die einige Dinge verursachen kann href="https://stackoverflow.com/q/413367/8446"> ignorieren alles, was nach der GUID . Um dies zu beheben, müssen Sie verwenden:
Set TypeLib = CreateObject("Scriptlet.TypeLib")
myGuid = TypeLib.Guid
myGuid = Left(myGuid, Len(myGuid)-2)
Wscript.Echo myGuid
Andere Tipps
Function CreateGUID
Dim TypeLib
Set TypeLib = CreateObject("Scriptlet.TypeLib")
CreateGUID = Mid(TypeLib.Guid, 2, 36)
End Function
Diese Funktion gibt eine einfache GUID, zum Beispiel 47BC69BD-06A5-4617-B730-B644DBCD40A9
.
Wenn Sie eine GUID in einem Registrierungsformat mögen, zum Beispiel {47BC69BD-06A5-4617-B730-B644DBCD40A9}
, die letzte Zeile der Funktion ändern, um
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
Sie können Gen zufällige GUID über dieses Objekt => "Scriptlet.Typelib"
Hilfe Link => With ... End
Hier ist My Way =
With CreateObject("Scriptlet.TypeLib")
'' For Del This = {}
WSH.Echo mid(.Guid ,2, 36)
WSH.Echo (.Guid)
End With