如何使用脚本来创建GUID

问:
您好,脚本专家!我们需要使用唯一标识号来跟踪某些项目。我的上司建议我们使用 GUID 来实现这个目的。有什么办法可以使用脚本来创建 GUID 呢?
-- DX

答:
您好,DX。GUID(全局唯一标识符)适用于完成类似以下内容的任务;我们自认为并不了解 GUID 所基于的算法,但我们几乎可以肯定地讲,您生成的每一个 GUID 都是唯一的。尽管在理论上存在生成重复 GUID 的可能性,但 Bill Gates 将他所有的钱都送给脚本专家的可能性在理论上也是存在的。我们还是不要在这两种可能性上劳神才是。

实际上,可以使用一种非常简单的方法来生成 GUID,但这种方法近乎像是作弊。(您可听清楚了,我们说的可是“近乎”。)“Scriptlet.TypeLib”对象的设计用途是帮助您创建“Windows 脚本组件”(实质上,这是一种使您编写的脚本可以像 COM 对象那样工作的方法)。Scriptlet.Typelib 对象包含一种方法,它可以生成与“Windows 脚本组件”类型库一起使用的 GUID;不过,没有理由不能使用该方法来生成用于其他用途的 GUID。(毕竟,GUID 就是 GUID。)如果您需要 GUID,下面这个由两行代码组成的脚本就可为您提供一个:

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

还不赖,是吧?当然,这个脚本所做的只是在消息框中回显 GUID;如果实际上要在其他地方使用该 GUID,就必须将其键入。如果不是由于 GUID 像如下内容那么冗长,这倒也不算什么难事:

因此,像我们这样乐于助人又喜欢标榜自己的家伙,当然要对脚本略做修改了。以下脚本可生成 GUID,然后将其复制到剪贴板,而不是显示在消息框中:

Set TypeLib = CreateObject("Scriptlet.TypeLib")
strGUID = TypeLib.Guid

Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate("about:blank")
objIE.document.parentwindow.clipboardData.SetData "text", strGUID
objIE.Quit

如果您想知道我们是怎样做到的,实际上,我们又耍弄了一个小伎俩。VBScript 无法将项目复制到剪贴板,但 Internet Explorer 可以。因此,我们只是生成 GUID,然后将该值存储在名为 strGUID 的变量中。接着,创建一个不可见的 Internet Explorer 实例,并使用“clipboardData.SetData”方法将该 GUID 复制到剪贴板。可使用以下这行代码来执行这项操作:

objIE.document.parentwindow.clipboardData.SetData "text", strGUID

退出 Internet Explorer,现在您想要在哪里使用该 GUID,就可以将其粘贴到哪里。

时间: 2024-09-26 12:29:50

如何使用脚本来创建GUID的相关文章

bootrom脚本的创建

bootrom脚本的创建     以下以压缩版bootrom 为例,基于Powerpc 平台,详细介绍压缩版bootrom 的生成过程及执行流程,从而使读者对bootrom有一个彻底的了解.这对于VxWorks内核本身的移植和BSP开发都具有重要意义.     bootrom是通过命令行脚本生成的,虽然Tornado开发环境中包含生成bootrom的菜单子命令,但是最终还是通过调用命令行脚本进行bootrom的生成.     在执行生成bootrom 映像的make 命令之前,我们首先需要设置一

详解Linux交互式shell脚本中创建对话框实例教程

当你在终端环境下安装新的软件时,你可以经常看到信息对话框弹出,需要你的输入.对话框的类型有密码箱,检查表,菜单,等等.他们可以引导你以一种直观的方式输入必要的信息,使用这样的用户友好的对话框的好处是显而易见的.如下图所示:     当你写一个交互式shell脚本,你可以使用这样的对话框来接受用户的输入.whiptail可以在shell脚本中创建基于终端的对话框,消息框的过程,类似于Zenity或xdialog GUI脚本代码.预先安装在所有的Linux发布版本中. 下面来看看whiptail的用

JS,Jquery及ExtJs不同脚本动态创建DOM对象

本文介绍简单使用JavaScript.JQuery.ExtJs进行DOM对象创建的测试,主要是使用JavaScript.JQuery.ExtJs动态创建Table对象.动态Table数据填充.多选控制. 1.简单前台数据处理 界面有点丑了,没美化界面,主要是JavaScript动态创建Table.效果图: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/T

创建Guid 的代码_vbs

Set TypeLib = CreateObject("Scriptlet.TypeLib") strGUID = TypeLib.Guid Set objIE = CreateObject("InternetExplorer.Application") objIE.Navigate("about:blank") objIE.document.parentwindow.clipboardData.SetData "text",

在Linux中使用shell脚本自动创建/移除并挂载交换文件

几天前我们写了一篇关于在 Linux 中 3 种创建交换文件的方法,它们是常见的方法,但是需要人工操作. 今天我发现了一个 Gary Stafford[1] 写的 shell 小脚本(两个 shell 脚本,一个用于创建交换文件,另外一个用于移除交换文件),它可以帮助我们在 Linux 中创建/移除并且自动挂载交换文件. 默认这个脚本创建并挂载 512MB 的交换文件.如果你想要更多的交换空间和不同的文件名,你需要相应地修改脚本.修改脚本不是一件困难的事,因为这是一个容易上手而且很小的脚本. 推

PowerShell脚本实现创建桌面快捷方式的方法_PowerShell

本文介绍如何使用PowerShell将一个程序或文件,创建一个桌面快捷方式.在Windows系统里面,手工操作创建桌面快捷方式是很容易的,您只需要右键拖动文件到桌面,然后放开,在自动弹出的菜单中选择"在此创建快捷方式"即可完成,但要编程来实现这个效果就比较复杂了. 首先,我们要使用到COM组件,创建桌面快捷方式,最简单的办法是调用WScript.Shell这个COM组件.那么在PowerShell如何创建一个COM组件呢? 复制代码 代码如下: $shell = New-Object

利用VBS脚本自动创建计算机帐户的代码_vbs

mcse注:其实这是 按照ADSI(Active Directory Services Interface:活动目录服务接口)写的程序.如果你安装了resource kit,这段代码可以用netcom这条命令进行工作,下面是netcom的一个例子:  NETDOM /Domain:MYDOMAIN /user:adminuser /password:apassword MEMBER MYCOMPUTER /ADD  复制代码 代码如下: *********************** '* St

PHP脚本的10个技巧(转自ZDNet) --动态创建图象

创建|动态|技巧|脚本 动态创建图象 在安装了某些第三方函数库之后,结合你的图形处理技能,你就可以用PHP创建和处理图像了.事实上,你也不需要太高的几何学知识.我在中学的时候这门功课总是不及格,现在不也照样会用PHP创建图像! 在使用基本的图像创建函数之前,你需要安装GD库.如果要用到和JPEG相关的图像创建函数你还需要安装jpeg-6b.在图像中使用Type 1字体的时候还必须安装t1lib. 在这里,你还需要对你的系统进行进一步地调整.首先,你必须安装t1lib以提供图象处理支持,接下来要安

用.net (在IIS中)创建虚拟目录(包括 脚本语言)

iis|创建|脚本|虚拟目录 两种语言在IIS中创建虚拟目录 用.net在IIS中创建虚拟目录 使用.NET的目录服务就可以访问IIS的设置,添加虚拟目录其实就是创建一个DirectoryEntry复杂的在于DirectoryEntry的属性,其实就是虚拟目的一些配置,比如,权限,是否要log,应用程序名等Properties非常多,而且文档不太好找详细可以参考MSDN以下内容help://MS.MSDNQTR.2004JUL.1033/iissdk/iis/configuring_proper