ฉันจะสร้าง UUID จากบรรทัดคำสั่งใน Windows XP ได้อย่างไร บางอย่างเช่น "uuid" หรือ "uuidgen" ใน Linux
ฉันจะสร้าง UUID จากบรรทัดคำสั่งใน Windows XP ได้อย่างไร บางอย่างเช่น "uuid" หรือ "uuidgen" ใน Linux
คำตอบ:
หากติดตั้ง powershell นี่เป็น commandline ง่ายๆในการรับ guid
powershell -Command "[guid]::NewGuid().ToString()"
วางรหัสต่อไปนี้ในชื่อไฟล์ใหม่ uuid.vbs
set obj = CreateObject("Scriptlet.TypeLib")
WScript.StdOut.WriteLine obj.GUID
จากนั้นคุณสามารถเรียกใช้จากบรรทัดคำสั่งดังนี้:
cscript //NoLogo uuid.vbs
วิธีนี้จะใช้ได้กับคอมพิวเตอร์ทุกเครื่องที่ติดตั้ง Windows Scripting Host ซึ่งแน่นอนว่าจะมีอะไรเพิ่มเติมนอกเหนือจาก Windows 2000 และอาจมี 95/98 / ME เช่นกัน ... แม้ว่าฉันจะไม่มีอินสแตนซ์ที่สะดวกในการตรวจสอบ
หากคุณต้องการลบวงเล็บปีกกาให้แทนที่บรรทัดสุดท้ายด้วยสิ่งนี้
WScript.StdOut.WriteLine Replace(Replace(obj.GUID,"{",""),"}","")
คุณยังสามารถใช้คำสั่งนี้ในพร้อมท์คำสั่ง:
wmic path win32_computersystemproduct get uuid
หากต้องการคัดลอก GUID ใหม่ไปยังคลิปบอร์ดให้ใช้คำสั่งนี้:
cmd /c powershell.exe -Command "[guid]::NewGuid().ToString()|Set-Clipboard"
คุณสามารถเรียกใช้คำสั่งได้โดยตรงจากกล่องโต้ตอบเริ่ม, เรียกใช้ (WinLogo + R) จากนั้นใช้ Ctrl + V เพื่อวาง GUID ที่สร้างขึ้นซึ่งจะบันทึกไว้ในประวัติการโต้ตอบของคุณ - aka หากคุณใช้บ่อยครั้งมันจะปรากฏขึ้น ขึ้นเป็นข้อเสนอแนะที่นั่น ...
จากไลบรารี MSDN: การสร้าง UUID ของอินเทอร์เฟซ
uuidgen
มีการติดตั้งยูทิลิตี้ (Uuidgen.exe) โดยอัตโนมัติเมื่อคุณติดตั้ง Platform Software Development Kit (SDK)
FOR /F %a IN ('POWERSHELL -COMMAND "$([guid]::NewGuid().ToString())"') DO ( SET NEWGUID=%a )
หากระบบปฏิบัติการไม่มี Windows SDK แต่มีตัวแปลภาษา C ด้วย mingw-w64 toolchain ให้คอมไพล์โปรแกรมขนาดเล็กนี้เพื่อสร้าง GUID แบบสุ่ม ฟังก์ชันที่อิมพอร์ตคือUuidCreate (rpcrt4.lib) เพื่อสร้าง UUID แบบสุ่มและStringFromCLSID (ole32.lib) เพื่อแปลง UUID เป็นสตริงที่กว้าง
#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);
}