Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String Powershell将字符串转换为整数_String_Powershell_Type Conversion_Integer - Fatal编程技术网

String Powershell将字符串转换为整数

String Powershell将字符串转换为整数,string,powershell,type-conversion,integer,String,Powershell,Type Conversion,Integer,这与我的上一个问题相似,但有一点变化。 再一次,我似乎无法克服这种转变 $myVar = "4MB" $myVarInt = ([convert]::ToInt32($myVar, 10))*1MB $myVarInt 给出错误:使用“2”参数调用“ToInt32”时出现异常:“字符串末尾有其他不可解析字符。” 我假设这是$myVar上的报价引起的问题。 如何使其工作?在$myVar变量中有一个包含字符的字符串。如果字符串只包含数字,则不重要,但如果它包含任何字符,则会抛出该错误 # Thi

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

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

$myVarInt
给出错误:使用“2”参数调用“ToInt32”时出现异常:“字符串末尾有其他不可解析字符。”

我假设这是$myVar上的报价引起的问题。
如何使其工作?

在$myVar变量中有一个包含字符的字符串。如果字符串只包含数字,则不重要,但如果它包含任何字符,则会抛出该错误

# This works
$myVar = "10"
$myVarInt = ([convert]::ToInt32($myVar, 10))*1MB
$myVarInt    
> 10485760

# This does not work
$myVar = "10t"
$myVarInt = ([convert]::ToInt32($myVar, 10))*1MB
Exception calling "ToInt32" with "2" argument(s): "Additional non-parsable characters are at the end of the string."
At line:1 char:1
+ $myVarInt = ([convert]::ToInt32($myVar, 10))*1MB
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : FormatException

您可以使用以下选项:

$myVarInt = [int]($myVar -replace '\D')*1MB
如果字符串包含数字和非数字的混合,则可以将非数字与
\D
进行正则表达式匹配。
-replace
运算符用于用另一个字符串替换正则表达式匹配的字符。
-replace'\D'
的组合将用空字符串替换所有非数字,而不管它们在字符串中的位置如何


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

$myvar
包含什么?在不知道
$myvar
的情况下,我会尝试
[int]($myvar-替换'\d')*1MB
抱歉,更新了帖子。顶线被切断了@谢谢你,就这样!哇,你真棒。