2011-02-08 54 views
3

我是PowerShell初學者。應該使用$()讓Write-Host來評估這個函數的原因是什麼?我無法從文檔中找到原因。Powershell:函數插值

PS C:\Temp> Write-Host [math]::round($diff.TotalMinutes, 2) 
[math]::round 751681,102679735 2 

___________________________________________________________________________________________________________ 
PS C:\Temp> Write-Host $([math]::round($diff.TotalMinutes, 2)) 
751681,1 

回答

4

您可以刪除美元符號和只使用

Write-Host ([math]::round($diff.TotalMinutes, 2)) 

需要解析器的支架,使得第一表達式求值,然後綁定參數-Object。 當解析器期望字符串是表達式並且將其視爲字符串並將其傳遞給命令而不進行評估時,有一些規則。更多信息可在PowerShell in Action找到。是否存在由;

Write-Host $(get-date; 1; "test") 
+0

非常感謝分離多個表達式需要

美元符號!!!! – tesmp 2011-02-09 18:00:41