web-dev-qa-db-fra.com

Générer GUID dans Windows avec fichier batch

Comment puis-je générer un GUID dans un fichier batch exécuté en utilisant la ligne de commande dans Windows?

44
Pratik

Le SDK Windows est livré avec un outil appelé uuidgen (si vous avez Visual Studio, vous aurez le SDK Windows et vous devez exécuter Invite de commandes Visual Studio pour définir les chemins d'accès appropriés ).

C:\>uuidgen

Cela produira un nouveau GUID, par ex.

cc23b318-156e-473f-aa6e-517bf091a0f0

69
Tim Robinson

1.Créez un fichier nommé myuuid.vbs avec le contenu

set obj = CreateObject("Scriptlet.TypeLib")  
WScript.StdOut.WriteLine Mid(obj.GUID, 2, 36)

2. invitez la commande

cscript //NoLogo myuuid.vbs

Utilisation de Java code

    UUID uuid = UUID.randomUUID();
    String randomUUIDString = uuid.toString();
25
Jigar Joshi

Essayez ceci si vous disposez d'un environnement PowerShell.

FOR /F %a IN ('POWERSHELL -COMMAND "$([guid]::NewGuid().ToString())"') DO ( SET NEWGUID=%a )

Puis valeur Guid prête de %NEWGUID%

23
user2441603

facile à faire en PowerShell

[guid]::NewGuid()
19
Jonas

Aucune commande intégrée n'est disponible à cet effet. Soit écrivez le vôtre, soit achetez-en un déjà existant.

Un programme simple qui génère un GUID sur la console peut être écrit en utilisant C #:

class Program
{
    static void Main(string[] args)
    {
        System.Console.WriteLine(System.Guid.NewGuid().ToString());
    }
}

Placez l'extrait ci-dessus dans un nom de fichier guidgen.cs, puis compilez-le à l'aide de la ligne de commande suivante (.NET Framework 2.0 devrait être installé sur votre système):

%WINDIR%\Microsoft.NET\Framework\v2.0.50727\csc.exe guidgen.cs 

Cela créera un exécutable nommé guidgen.exe.

7
Dirk Vollmar

Si vous voulez le faire avec des commandes cmd pures, vous pouvez utiliser quelque chose comme ça (ce n'est pas un vrai GUID mais cela peut aider selon votre contexte):

@call :GetGuid NewGuid
@echo My new GUID : %NewGuid%

@goto :eof


:GetGuid
 @set _guid=%computername%%date%%time%
 @set _guid=%_guid:/=%
 @set _guid=%_guid:.=%
 @set _guid=%_guid: =%
 @set _guid=%_guid:,=%
 @set _guid=%_guid::=%
 @set _guid=%_guid:-=%
 @set %1=%_guid%
@goto :eof
4
efdummy

Cela copiera un nouveau GUID dans votre presse-papiers:

POWERSHELL -c "[guid]::NewGuid().ToString().ToUpper()" | CLIP
4
Michel de Ruiter

Si le système d'exploitation n'a pas de SDK Windows mais dispose d'un compilateur C avec la chaîne d'outils mingw-w64, compilez ce petit programme pour générer un GUID aléatoire. Les fonctions importées sont idCreate (rpcrt4.lib) pour créer un UUID aléatoire et StringFromCLSID (ole32.lib) pour convertir l'UUID en chaîne large.

#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);
}
0
Biswapriyo