如何在Windows XP中从命令行生成UUID?


Answers:


12

如果安装了powershell,这是获取GUID的简单命令行

powershell -Command "[guid]::NewGuid().ToString()"

您可以在PowerShell中使它成为可重用的命令。函数uuid {[guid] :: NewGuid()。ToString()}。只需根据需要运行“ uuid”。
Alain O'Dea

我将此行放在PATH文件夹中的guid.bat中,因此它可以在常规命令提示符和PowerShell中使用。
biscuit314

7

将以下代码拖放到新文件名uuid.vbs中

set obj = CreateObject("Scriptlet.TypeLib")
WScript.StdOut.WriteLine obj.GUID

然后,您可以从命令行运行它,如下所示:

cscript //NoLogo uuid.vbs

这几乎可以在任何安装了Windows脚本宿主的计算机上工作-当然,它包含Windows 2000以后的任何版本,并且还可能包含95/98 / ME ...尽管我没有要检查的实例。

如果需要删除括号,请用此替换最后一行

WScript.StdOut.WriteLine Replace(Replace(obj.GUID,"{",""),"}","")

4
有趣的是,在Windows中,它是每个星球唯一的,但是在Unix和相关系统中,它在整个宇宙中都是唯一的。
Bratch

2

您还可以在命令提示符下使用此命令:
wmic path win32_computersystemproduct get uuid


似乎只对1
吉特有效

4
这不会生成GUID。它只是显示一个现有的GUID。如果您想要一个独特的GUID,请不要使用此功能
Air2,2014年

2
相关的XKCD:xkcd.com/221
TripShock

2

要将新的GUID复制到剪贴板,请使用以下命令:

cmd /c powershell.exe -Command "[guid]::NewGuid().ToString()|Set-Clipboard"

您可以直接从“开始”,“运行”对话框(WinLogo + R)运行命令,然后使用Ctrl + V粘贴生成的GUID,该GUID还将其保存到“运行”对话框的历史记录中-如果您经常使用它,它将弹出-作为建议...


1

从MSDN库:生成接口UUID。


您知道我可以从哪里下载此“ uuidgen”吗?
Yazz.com 2010年

它配备了Visual Studio的-我希望它来与Visual C ++我相信这是一个免费下载,以及明示版
罗兰肖

1
msdn.microsoft.com/zh-cn/library/aa373930%28VS.85%29.aspx说,在uuidgen安装平台软件开发工具包(SDK)时会自动安装该实用程序(Uuidgen.exe)。
Mehper C. Palavuzlar,2010年

它不能单独下载吗,因为我没有使用过SDK或Visual Studio。
Yazz.com 2010年

1
@Zubair:安装SDK,获取uuidgen,卸载SDK。其他任何事情都侵犯了版权。
harrymc


0

如果系统操作系统没有Windows SDK,但确实具有带有mingw-w64工具链的C编译器,则编译该小程序以生成随机GUID。导入的函数是用于创建随机UUID的UuidCreate(rpcrt4.lib)和用于将UUID转换为宽字符串的StringFromCLSID(ole32.lib)。

#include <Windows.h>
#include <stdio.h>

/*
 * int UuidCreate(GUID *id);
 * int StringFromCLSID(GUID *id, wchar_t **str);
 * Libraries: Rpcrt4.lib Ole32.lib
 */

int main(void)
{
    GUID id;
    wchar_t *str = NULL;

    UuidCreate(&id);
    StringFromCLSID(&id, &str);
    wprintf(L"%ls\n", str);
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.