2011-02-08 3 views
3

Je suis un débutant PowerShell. Quelle est la raison pour laquelle vous devez utiliser $() pour écrire Write-Host pour évaluer cette fonction? Je ne pouvais pas trouver une raison à cela dans la documentation.Powershell: interpolation de fonction

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 

Répondre

4

Vous pouvez supprimer le signe du dollar et utiliser juste

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

Les supports sont nécessaires pour l'analyseur de telle sorte que d'abord l'expression est évaluée et lié au paramètre -Object. Il existe certaines règles lorsque l'analyseur s'attend à ce que la chaîne soit une expression et qu'elle la traite comme une chaîne et la passe à la commande sans évaluation. Plus d'informations peuvent être trouvées dans PowerShell in Action.

signe du dollar est nécessaire s'il y a plus d'expressions séparées par ;

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

Un grand merci !!!! – tesmp