尝试像这样调用你的函数:
ConvertToMeters -feet (Read-Host -prompt "Enter feet")
另请注意,当您使用 向控制台写入消息Write-Host
并且不引用字符串时,PowerShell 将删除多余的空格和逗号。如果您必须小心,-
因为 Powershell 可能会尝试将以下文本解释为参数。随后我建议只使用引号:
Write-Host 'Hey there. This is an easy script that will convert Feet to Meters' -ForegroundColor Cyan -BackgroundColor Magenta
顺便说一句,这是一个可怕的颜色组合。:-)
您遇到的另一个问题是由于 $feet 是字符串而不是数字。试试这样:
Write-Host 'Hey there. This is an easy script that will convert Feet to Meters' -Fore Cyan -Back Magenta
PAUSE
Function ConverTo-Meters($feet) {
"$feet equals $(.31*$feet) meters"
}
ConvertTo-Meters -feet (Read-host -prompt "Enter Feet")
您可以解决此问题的另一种方法是指定 $feet 的类型,例如:
Function Converttometers([double]$feet) { ... }
您现在拥有它的方式,PowerShell 正在使用一个功能,您可以在其中获取一个字符串并重复它,例如:
"a" * 4 # outputs aaaa
由于您指定了小于 1 的 .31,因此您会得到一个空字符串,例如:
("10" * .31).length # outputs 0