我正在运行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'
答案 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!'
}