gpt4 book ai didi

powershell - 如何忽略字母/单词?

转载 作者:行者123 更新时间:2023-12-03 00:42:31 28 4
gpt4 key购买 nike

假设我有以下代码:

$size = 23.9
$size = "$size GB"
write $size

我想在其他事情上使用相同的变量,即
if ($size -lt 20)
{...}

这显然是个问题,因为这里的 $size具有GB /是字符串

我如何忽略字符串部分?

我正在寻找这样的东西:
if($($size -replace ("anything after the numbers", "")) -lt 20)
{....}

最佳答案

如果您坚持使用字符串并遵守-replace运算符,则可以使用以下代码:

[double]($size -replace "[^\d\.]+$")

如果您维护诸如 intdouble之类的数值类型,则可以使用其他方式来处理数据。您仍然可以在将 $size保持为两倍的同时输出字符串。
$size = 23.9
$unit = 'GB'
"{0} {1}" -f $size,$unit
23.9 GB

与上述示例非常相似的概念是将 $size创建为自定义对象。
$size = [pscustomobject]@{Size = 23.9; Unit = 'GB'}
"{0} {1}" -f $size.Size,$size.Unit

您可以进行动态单位分配。如果我们假设您以字节为单位开始大小,则可以分配单位并进行转换。
if ($size -ge 1GB)
{
$newSize = [pscustomobject]@{
Size = $size/1GB; Unit = 'GB'
}
}
elseif ($size -ge 1MB)
{
$newSize = [pscustomobject]@{
Size = $size/1MB; Unit = 'MB'
}
}
elseif ($size -ge 1KB)
{
$newSize = [pscustomobject]@{
Size = $size/1KB; Unit = 'KB'
}
}
else
{
$newSize = [pscustomobject]@{
Size = $size; Unit = 'B'
}
}

关于powershell - 如何忽略字母/单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57531045/

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