在 PowerShell 中,如何评估以字符串形式存储的数学表达式?如何让 PowerShell 评估以下内容:
C:\> $a="30000/1001"
C:\> $a
30000/1000
C:\>
期望输出:
C:\> $a="30000/1001"
C:\> <some command>
29.97002997003
C:\>
在 Linux 中我可以执行以下操作(基本上就是我想在 PowerShell 中完成的操作):
user@computer:/path# a="30000/1001"
user@computer:/path# echo "scale=5; $a" | bc
29.97002
答案1
使用Invoke-Expression
。或者直接调用一个新的 shell(当然速度要慢得多)
$a="30000/1001"
Invoke-Expression $a
powershell -Com $a
答案2
使用 Invoke-Expression 通常不建议;我建议使用更安全的方法System.Data.DataTable
:
$a="30000/1001"
[Data.DataTable]::New().Compute($a, $null)
# Result = 29.97002997003