Powershell:评估以字符串表示的数学表达式

Powershell:评估以字符串表示的数学表达式

在 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

相关内容