剥离PS中的值并比较是否为整数值

时间:2018-08-20 19:56:48

标签: windows powershell powershell-v3.0 powershell-v4.0 powershell-remoting

我正在运行PS cmdlet %%~na,它将生成以下输出

get-customcmdlet

我还有另一个变量Name FreeSpaceGB ---- ----------- ABC-vol001 1,474.201 现在,我只想去除$var=vol并要检查它是否是整数。

我正在使用,但得到空值

001

我的结果应该是整数$vdetails = get-customcmdlet | split($var)[1] $vnum = $vdetails -replace '.*?(\d+)$','$1'

1 个答案:

答案 0 :(得分:3)

假设:get-customcmdlet返回的pscustomobject对象的属性为Name,类型为string

$var = 'vol'
$null -ne ((get-customcmdlet).Name -split $var)[1] -as [int]

此表达式将根据投射是否成功返回$true$false


如果您的目标是填充零,则需要事后进行处理(在这种情况下,我只是捕获了原始字符串):

$var = 'vol'
$out = ((get-customcmdlet).Name -split $var)[1]
if ($null -ne $out -as [int])
{
    $out
}
else
{
    throw 'Failed to find appended numbers!'
}