我如何在 Windows 命令行中运行批处理文件来生成 GUID?
我如何在 Windows 命令行中运行批处理文件来生成 GUID?
Windows SDK自带一个名为uuidgen
的工具(如果您安装了Visual Studio,则会有Windows SDK,并且您需要运行Visual Studio命令提示符来设置正确的路径)。
C:\>uuidgen
这将输出一个新的 GUID,例如:
cc23b318-156e-473f-aa6e-517bf091a0f0
PATH
中。而且,它似乎并不是真正随机的,而是基于时间的(此实用程序的Unix版本具有“-r”和“-t”标志,以指定您是否希望其基于随机或基于时间)。 - Camilo Martin如果您拥有PowerShell环境,请尝试这个。
FOR /F %a IN ('POWERSHELL -COMMAND "$([guid]::NewGuid().ToString())"') DO ( SET NEWGUID=%a )
然后从%NEWGUID%
中准备好Guid值。
.bat
),请不要忘记在 FOR
语句中将 %
号加倍(因此该行应为 FOR /F %%a IN ('POWERSHELL -COMMAND "$([guid]::NewGuid().ToString())"') DO ( SET NEWGUID=%%a )
)。请注意,这里的修改只是为了使其更符合中文表达习惯,并没有改变原意。 - youen1.创建一个名为myuuid.vbs的文件,内容如下:
set obj = CreateObject("Scriptlet.TypeLib")
WScript.StdOut.WriteLine Mid(obj.GUID, 2, 36)
2. 打开命令提示符
cscript //NoLogo myuuid.vbs
使用Java代码
UUID uuid = UUID.randomUUID();
String randomUUIDString = uuid.toString();
uuidgen
命令。 - bobbogoPOWERSHELL -c "[guid]::NewGuid().ToString().ToUpper()" | CLIP
POWERSHELL -c "New-Guid | Set-Clipboard"
没有内置的命令可以实现这个功能。要么编写自己的程序,要么获取现有的程序。
可以使用C#编写一个简单的程序,在控制台输出GUID:
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
的可执行文件。
$ guidgen | clip
命令来剪切输出?我不得不将其包装在一个函数中并导出为 guidgen() { echo "$(guidgen.exe)"; } export -f guidgen
(请参见 https://dev59.com/1nI_5IYBdhLWcg3wK_o6#1500592)。 - hIpPy@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
@echo off
,而不是在每个命令前面加上@
呢? - phuclv可以滥用bitsadmin
来生成GUID。这比从批处理脚本中调用PowerShell要快得多。
@echo off & setlocal
for /f "delims={}" %%I in ('bitsadmin /rawreturn /create guid') do set "GUID=%%~I"
>NUL bitsadmin /cancel {%GUID%}
echo Your new GUID is %GUID%. Neat.
如果您想保留周围的大括号,请删除 "delims={}"
并将 {%GUID%}
替换为 %GUID%
。
dotnet
:$ dotnet tool install -g guid
$ guid
bf4be9d0-7d1b-485c-a435-d07fd7b892f0
$ guid help
Usage:
guid [option]
Where [option] is an optional single character that controls formatting:
N B382C3F44E604D08B48A2D342A659B4E
D B382C3F4-4E60-4D08-B48A-2D342A659B4E
B {B382C3F4-4E60-4D08-B48A-2D342A659B4E}
P (B382C3F4-4E60-4D08-B48A-2D342A659B4E)
When unspecified, 'd' formatting is used. Use lowercase [option] for lowercase output.