2009-06-09 11 views
28

मैं वीबीस्क्रिप्ट में GUID तार उत्पन्न करना चाहता हूं। मुझे पता है कि वी उत्पन्न करने के लिए वीबीस्क्रिप्ट में कोई अंतर्निहित फ़ंक्शन नहीं है। मैं यादृच्छिक जेनरेट किए गए GUID का उपयोग नहीं करना चाहता हूं। हो सकता है कि एक ActiveX ऑब्जेक्ट है जिसे CreateObject() का उपयोग करके बनाया जा सकता है जो कि (नए) विंडोज संस्करणों पर स्थापित होना सुनिश्चित है जो GUID उत्पन्न कर सकते हैं?वीबीस्क्रिप्ट में GUID कैसे उत्पन्न करें?

+0

को समारोह के अंतिम लाइन बदलने मुझे लगता है कि स्वीकार किए जाते हैं जवाब बहुत कम गुणवत्ता की तुलना में [उच्चतम एक मतदान] है (चाहते हैं http://stackoverflow.com/a/968790/2932052)। शायद आपके निर्णय पर पुनर्विचार करने का एक कारण? – Wolf

उत्तर

28

How Can I Create a GUID Using a Script? (in: Hey, Scripting Guy! Blog) कहना है कि यह:

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

हालांकि, ध्यान दें कि Scriptlet.TypeLib.Guid रिटर्न एक अशक्त-समाप्त स्ट्रिंग, जो ignore everything after the GUID को कुछ चीजें पैदा कर सकता है। कि ठीक करने के लिए, आप उपयोग करना पड़ सकता है:

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

धन्यवाद! मुझे "हे, स्क्रिप्टिंग गाय" पसंद है! संपर्क! – vividos

+8

इस विधि का उपयोग करने वाले किसी भी व्यक्ति के लिए, ध्यान रखें कि 'Scriptlet.TypeLib' ऑब्जेक्ट प्रत्येक GUID_ को वापस लौटाएगा जब भी आप' GUID' प्रॉपर्टी का आह्वान करेंगे। यदि आपको एकाधिक GUID उत्पन्न करने की आवश्यकता है, तो 'Scriptlet.TypeLib' ऑब्जेक्ट को नष्ट करें और फिर से बनाएं, या बेहतर है, इसे किसी फ़ंक्शन में लपेटें जैसे कि अन्य लोगों ने दिखाया है कि ऑब्जेक्ट प्रत्येक फंक्शन कॉल के साथ बनाया और नष्ट हो गया है। – Bond

+0

@Vividos टूटी हुई लिंक अब तय की गई है (Google के लिए धन्यवाद) – Wolf

41
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) 
+0

सर्वश्रेष्ठ उत्तर: विवरणों के बारे में जानकारी के लिए एक बहुत ही स्मार्ट फ़ंक्शन प्रदान करने और अतिरिक्त सामग्री जोड़ने को जोड़ती है। यह स्वीकार्य उत्तर होना चाहिए। – Wolf

8
' Returns a unique Guid on every call. Removes any cruft. 
Function CreateGuid() 
    CreateGuid = Left(CreateObject("Scriptlet.TypeLib").Guid,38) 
End Function 
संबंधित मुद्दे