gpt4 book ai didi

powershell - 在 PowerShell 中读取单个按键(整数)

转载 作者:行者123 更新时间:2023-12-03 18:36:53 30 4
gpt4 key购买 nike

我知道这个 question但它没有回答我目前的问题。

我知道当前行给了我下一个按键:

$Host.UI.RawUI.ReadKey().Character

例如,如果我按 1 , 我得到 1 .

但那是一个字符串(嗯,实际上是一个字符),我想要一个整数。

我尝试:
[int]$Host.UI.RawUI.ReadKey().Character

和:
$Host.UI.RawUI.ReadKey().Virtualkeycode

但是在这两行中,如果您按 1 ,你会得到 49 .

我知道我可以简单地做:
[int]$Host.UI.RawUI.ReadKey().Character - 48

但我想知道是否有更好的方法来做到这一点。例如,如果我想同时获取字母和数字,则使用 -48会有点困难,因为我需要使用一些条件块。

所以,我的问题是: 有没有更好的方法将按下的键(数字)作为整数而不是 [int]$Host.UI.RawUI.ReadKey().Character - 48 ?

最佳答案

您可以选择 System.Int32.Parse方法:

PS> [int]::Parse

OverloadDefinitions
-------------------
static int Parse(string s)

正在使用:
$in = $Host.UI.RawUI.ReadKey().Character
[int]::Parse($in)

您也可以使用 System.Int32.TryParse如果您认为用户会输入非整数内容:
PS> [int]::TryParse

OverloadDefinitions
-------------------
static bool TryParse(string s, [ref] int result)

正在使用:
[int] $out = 0
$in = $Host.UI.RawUI.ReadKey().Character
if ([int]::TryParse($in, [ref]$out)) {
$out
}
else {
Write-Warning 'Non-int entered!'
}

关于powershell - 在 PowerShell 中读取单个按键(整数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54809946/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com