2010-11-30 26 views
33

Windowsでコマンドラインを使用して実行しているバッチファイルでGUIDを生成するにはどうすればよいですか?バッチファイルを使用してWindowsでGUIDを生成

+0

を行うのは簡単そうだ。あなた自身で書くか、既存のものを手に入れてください。 –

+3

ところで、MS-DOSは少なくとも10年間は​​死んでいます。バッチファイルを実行するプログラムはコマンドプロンプトです。 –

+0

http://stackoverflow.com/questions/569858/command-line-guid-for-unix-and-windows – onder

答えて

55

のWindows SDKは、(Visual Studioを持っている場合は、Windows SDKがあるでしょう、そしてあなたは、適切なパスを設定するVisual Studio Command Promptを実行する必要があります)uuidgenというツールが付属しています。

C:\>uuidgen 

これにより、新しいGUIDが出力されます。

cc23b318-156e-473f-aa6e-517bf091a0f0コンテンツと

+1

私はVisual Studioや.NET Frameworkを持っていないのですか? – Pratik

+0

Windows SDKを別途ダウンロードしてインストールすることはできますか? 1つのユーティリティでは大変ですが、ダウンロードを待つよりも、自分で作成する方が早いでしょう。 –

+0

SDK以外の何かの理由で何がダウンロードできないのか – Pratik

21

1.Createという名前のファイルmyuuid.vbsコマンドプロンプト2.goto

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

cscript //NoLogo myuuid.vbs

JAVAコードを使用

UUID uuid = UUID.randomUUID(); 
    String randomUUIDString = uuid.toString(); 
+0

@Pratikこれはあなたの仕事をするVB Scriptコードです。あなたは特別なenvを必要としません。この2つのステップに従ってください。 –

+0

@Pratikあなたはステップ2を正確に述べましたか?コマンドラインから "script // NoLogo myuuid.vbs " –

+0

@Pratikここでは、ステップ2と入力するコマンドを投稿できますか? –

6

これを実行する組み込みコマンドはありません。あなた自身で書くか、既存のものを手に入れてください。

コンソールにGUIDを出力する単純なプログラムは、C#を使用して記述することができる:

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

ファイル名guidgen.csに入れ、上記のスニペットをし、次のコマンドライン(.NETを使用してコンパイルFramework 2.0が)システムにインストールする必要があります:

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

これはguidgen.exeという名前の実行ファイルを作成します。

+0

はC#のようです。私は.NETフレームワークのない非常に古いPCを持っていますが、これは動作するのでしょうか、これ以外の解決策はありますか? – Pratik

+0

@Pratik:何歳ですか?それは本当にMS-DOSを実行していますか?コンパイラはまったく利用できますか? Windows XPの –

+0

dosバージョン5.1.2600私はコンパイラについては何も考えていません – Pratik

16

powershell環境をお持ちの場合は、この方法をお試しください。 %NEWGUID%

+0

これには.NET Frameworkも必要です:) – Soundararajan

+0

バッチファイル( '.bat')を書く場合は、' FOR'ステートメントで '%'を二重にすることを忘れないでください( ' DO(SET NEWGUID = %% a) ') – youen

+1

@Soundararajan powershellと.NETは、次のように動作します。 Vista以降のすべてのWindowsバージョンで利用可能 –

3

から

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

次に準備GUID値あなたは純粋なCMDコマンドでそれをしたい場合は、あなたがそのようなものを使用することができます(これは本当のGUIDではありませんが、それはあなたの状況に応じて、助けることができます) :

@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 
+0

それは働いていません。 – Pratik

+0

内容を.BATファイルとして保存して実行します。私のマシンで動作します(Windows 8)。 –

+0

COMMAND.COMの代わりにCMD.EXEによって解釈される.CMDファイルでそれを行う方が良いです;-) http://www.differencebetween.net/technology/difference-between-cmd-and-bat/ – efdummy

8

ビルトインnoコマンド利用できることdはありませんPowerShellで

[guid]::NewGuid() 
関連する問題