PowerShell - 使用花括号为板编写新的 GUID

PowerShell - Writing a new GUID for a board with curly braces

我从 powershell 开始,我写了一个小而简单的代码,将新的 GUID 写入板。

我用了这条线:

Set-Clipboard (New-Guid).Guid

有效,但我找不到如何用大括号编写 GUID。

当然已经有关于这个问题的答案,但我很难找到。

也许可以给别人一个主意?

谢谢!

Subexpression operator $( ) 允许解析嵌入在 字符串 .

中的表达式

请注意,在这种情况下不需要调用对象的 .Guid 属性,因为它的 string 表示解析为 32位数字用连字符分隔,与.ToString().ToString('D').

相同
Set-Clipboard "{$(New-Guid)}"
# `$(New-Guid)` is evaluated first then the result of the expression
# is embedded in the string.

zett42's helpful comment provides a much better alternative to the one above simply by using Guid .ToString(String) Method"B" 格式参数:

Set-Clipboard (New-Guid).ToString('B')

代码

$guid = [System.Guid]::NewGuid().ToString("B")
Write-Host $guid
Set-Clipboard $guid
$guid = "{$([System.Guid]::NewGuid())}"
Write-Host $guid
Set-Clipboard $guid
$guid = "{$((New-Guid).Guid)}"
Write-Host $guid
Set-Clipboard $guid
$guid = (New-Guid).Guid
Write-Host "{$guid}"
Set-Clipboard "{$guid}"

输出


替代实施/密码指南

function New-CryptoGuid {
        $bytes = [System.Security.Cryptography.RandomNumberGenerator]::GetBytes(16)
        return [System.Guid]::new($bytes).ToString("B")
}

$guid = New-CryptoGuid
Write-Host $guid
Set-Clipboard $guid

输出


参考文献

System.Guid
Guid.NewGuid Method - Remarks
System.Guid - Constructor
RandomNumberGenerator.GetBytes Method