Я хочу сгенерировать строки GUID в VBScript. Я знаю, что в VBScript нет встроенной функции для его создания. Я не хочу использовать GUID, генерируемые случайным образом. Может быть, есть объект ActiveX, который можно создать с помощью CreateObject (), который обязательно будет установлен в (более новых) версиях Windows, которые могут генерировать GUID?
4 ответа
Как я могу создать GUID с помощью скрипта? (in: Блог "Эй, сценарист!") говорит следующее:
Set TypeLib = CreateObject("Scriptlet.TypeLib")
Wscript.Echo TypeLib.Guid
Однако обратите внимание, что Scriptlet.TypeLib.Guid возвращает строку с завершающим нулем, что может привести к тому, что некоторые вещи будут игнорировать все, что находится после GUID . Чтобы исправить это, вам может потребоваться:
Set TypeLib = CreateObject("Scriptlet.TypeLib")
myGuid = TypeLib.Guid
myGuid = Left(myGuid, Len(myGuid)-2)
Wscript.Echo myGuid
Set tlib = Server.CreateObject("Scriptlet.TypeLib")
strGuid = tlib.Guid
' Returns a unique Guid on every call. Removes any cruft.
Function CreateGuid()
CreateGuid = Left(CreateObject("Scriptlet.TypeLib").Guid,38)
End Function
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)
Похожие вопросы
Связанные вопросы
Новые вопросы
vbscript
VBScript (Visual Basic Scripting Edition) - это интерпретируемый язык сценариев, разработанный Microsoft и созданный по образцу Visual Basic. VBScript - это не то же самое, что VBA или VB.NET. Это три разные вещи, поэтому используйте правильные теги.