¿Cómo puedo generar un GUID en un archivo por lotes se ejecuta usando la línea de comandos en Windows?

  • No hay ningún comando integrado disponible que hace. Escribir su propio, o conseguir uno ya existente.
  • BTW, MS-DOS ha sido muertos por al menos 10 años. El programa que ejecuta los archivos por lotes es el símbolo del sistema.
  • stackoverflow.com/questions/569858/…
  • Robinson : Gracias por tu aporte, mirando hacia adelante para ayudar en la creación de Guid.
InformationsquelleAutor Pratik | 2010-11-30

7 Comentarios

  1. 68

    El SDK de Windows viene con una herramienta llamada uuidgen (si tienes Visual Studio, usted tendrá el SDK de Windows, y usted necesita para ejecutar el Comandos De Visual Studio para establecer la ruta correcta).

    C:\>uuidgen
    

    Esta es la salida de un nuevo GUID, por ejemplo,

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

    • en caso que no tengo Visual Studio o .NET Framework ?
    • Tal vez descargar e instalar el SDK de Windows por separado? Aunque es mucho para una compañía de servicios públicos, sería más rápido para escribir su propio que esperar a la descarga.
    • en los casos donde no puedo bajar debido a algunas razones por lo que puede ser otra alternativa que el SDK
    • Si usted no tiene otra alternativa que usted probablemente tendrá que escribir su propio generador GUID
    • Usted necesidad de utilizar la opción-c en uuidgen por un instalador de windows archivo de proyecto.
    • Cosa curiosa, tengo tres diferentes versiones de VS pero uuidgen no estaba en el PATH para mí. Además, no parece ser realmente aleatorio, pero en el tiempo (las versiones de Unix de esta utilidad tiene una -r y -t banderas para especificar si quieres que sea al azar o basado en el tiempo.
    • Puedo almacenar en un lote variable?

  2. 25

    1.Cree un archivo denominado myuuid.vbs con el contenido

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

    2.goto símbolo del sistema

    cscript //NoLogo myuuid.vbs

    Utilizando código JAVA

        UUID uuid = UUID.randomUUID();
        String randomUUIDString = uuid.toString();
    
    • este es el código de VB Script que va a hacer su tarea, usted no necesita ningún env para ello sólo tiene que seguir 2 pasos mencionados
    • has seguido el paso 2 exactamente mencionado ? desde la línea de comandos debe ser de secuencia de comandos «//NoLogo myuuid.vbs «
    • puedes publicar aquí qué comando se escribe como en el paso 2?
    • tipo «cscript //NoLogo myuuid.vbs»
    • href=»http://www.devguru.com/technologies/vbscript/quickref/filesystemobject.html» >devguru.com/technologies/vbscript/quickref/… aquí es un ejemplo de cómo crear un archivo utilizando VBS y ya está almacenado en la variable OBJ , yo no soy mucho conocimiento acerca de VBS de lo contrario me habría dicho 🙂
    • Instalar cygwin, y asegurarse de que tiene el util-linux el paquete. Que le dará un uuidgen comando.

  3. 23

    Intente esto si usted tiene powershell medio ambiente.

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

    Listo valor Guid de %NEWGUID%

    • Esto podría requerir que usted tiene .NET Framework así 🙂
    • Si la escritura de un archivo de proceso por lotes (.bat), no olvides el doble de la % en el FOR declaración (por lo que la línea debe leer FOR /F %%a IN ('POWERSHELL -COMMAND "$([guid]::NewGuid().ToString())"') DO ( SET NEWGUID=%%a ))
    • powershell .NET está disponible en todas las versiones de Windows desde Vista
  4. 7

    Hay ningún comando integrado disponible que hace. Escribir su propio, o conseguir uno ya existente.

    Un programa simple que genera un GUID para la consola podría ser escrita con C#:

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

    Lugar el anterior fragmento de código en un archivo de nombre guidgen.cs y, a continuación, compilar usando la siguiente línea de comandos (.NET Framework 2.0 tendría que estar instalado en su sistema):

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

    Esto creará un archivo ejecutable denominado guidgen.exe.

    • parece como C#. bueno, tengo una pc vieja con ninguna .Marco jurídico NET en este trabajo o hacer un poco de solución que no sea este ?
    • ¿Cuántos años? Es lo que realmente se está ejecutando MS-DOS? ¿Tienes algún compilador disponible en todos?
    • dos versión 5.1.2600 en Windows XP. no tengo ninguna idea acerca de los compiladores
    • Downvoter, cuidado de explicar?
    • Alguna idea de por qué no soy capaz de clip la salida en bash como $ guidgen | clip? Tengo que terminar con esto de una función y de exportación como guidgen() { echo "$(guidgen.exe)"; } export -f guidgen (ver stackoverflow.com/questions/1500499/…).
  5. 4

    Si quieres hacerlo con puro comandos cmd, puedes usar algo como esto (esto no es un verdadero GUID pero puede ayudar dependiendo de su contexto) :

    @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
    
    • Es’not de trabajo..
    • Guardar el contenido como .Archivo BAT y ejecutarlo. Funciona en mi máquina (Windows 8).
    • Mejor hacerlo en una .Archivo CMD ser interpretado por CMD.EXE en lugar de COMMAND.COM 😉 differencebetween.net/technology/difference-between-cmd-and-bat
    • ¿por qué no acaba de poner @echo off al principio en lugar de anteponer todos los comandos con @?
    • El prefijo de todos los comandos con un @ es útil cuando se está depurando la secuencia de comandos. Si usted sospecha que la línea no está funcionando bien, acaba de suprimir la @ para esta línea y volver a ejecutar la secuencia de comandos. Usted verá en la consola lo que pasa.

Dejar respuesta

Please enter your comment!
Please enter your name here