首页 > 解决方案 > Powershell将字符串转换为整数

问题描述

这与我的上一个问题相似,但有一点变化。再一次,我似乎无法克服转变。

$myVar = "4MB"
$myVarInt = ([convert]::ToInt32($myVar, 10))*1MB

$myVarInt

给出错误:使用“2”参数调用“ToInt32”的异常:“其他不可解析的字符位于字符串的末尾。”

我认为这是 $myVar 引起问题的引号。我怎样才能让它工作?

标签: stringpowershelltype-conversioninteger

解决方案


您可以使用以下内容:

$myVarInt = [int]($myVar -replace '\D')*1MB

如果字符串包含数字和非数字的混合,您可以正则表达式匹配非数字与\D. 该-replace运算符用于将正则表达式匹配的字符替换为另一个字符串。的组合-replace '\D'将用空字符串替换所有非数字,无论它们在字符串中的位置如何。

默认情况下[int],强制转换将尝试转换为Int32.


推荐阅读