【问题标题】:Powershell calculator script is not working properlyPowershell 计算器脚本无法正常工作
【发布时间】:2019-12-17 00:30:19
【问题描述】:

我创建了一个非常简单的 powershell 脚本来计算表达式。那就是:

$expression = read-host -prompt "Enter an expression"
$result = $expression
write-host "The result is $result"
read-host

但是,当我这样使用它时:

输入一个表达式:2+3

结果是2+3

如何让第二行计算结果?

【问题讨论】:

  • 分别解析出数字和操作数,然后确定顺序并应用。 到目前为止,您是否在您的代码中对此进行过任何尝试? 如果有,请在您的问题中edit,以便我们查看可能出了什么问题。
  • 看看Invoke-Expression,不过要非常小心,因为它会调用用户输入的任何内容,而不仅仅是简单的算术表达式。
  • 执行用户输入的任意代码非常危险。
  • 感谢您的建议。我以前不知道该怎么做。

标签: powershell variables calculation


【解决方案1】:

也许这对你有帮助:

 $expression = read-host -prompt "Enter an expression"

# check for dangerous code
if( ($expression -replace '^[0-9\+\-\*\/ ]+$').Length -eq 0 ) {
    try {
        $result = Invoke-Expression $expression
        write-host "The result is $result"
    }
    catch {
        write-host "Syntax error"
    }
}
else {
    write-host "Invalid expression"
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-05
    • 2017-12-26
    • 1970-01-01
    • 2020-06-03
    • 2018-06-09
    相关资源
    最近更新 更多