考虑这个简单的代码:
$myObject = New-Object PSCustomObject
$myObject | Add-Member -MemberType ScriptMethod -Name 'Multiply' -Value { $x=Read-Host; $x = $x * 10; Write-Host "$x" }
$myObject.Multiply()
输入1
会返回1111111111
,但我希望该值为10
。
有什么问题?
答案 0 :(得分:2)
这是因为$x
是字符串,因为您可以通过调用$x.GetType()
进行验证:
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
您可以通过将变量转换为[double]
:
$x=Read-Host; $x = [double]$x * 10; Write-Host "$x"