脚本块中的单独命令

时间:2017-08-31 16:14:20

标签: powershell

考虑这个简单的代码:

$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

有什么问题?

1 个答案:

答案 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"