2016-06-30 10 views
1

ich den Prozentsatz des verwendeten Raumes für bestimmte Ordner und zeigte den Wert im Vergleich zu einem Schwellenwert dh 85% berechnet werden soll, aber wenn ich unten Code zu schreiben, erhalte ich Fehler:Erste Fehler bei Berechnung auf variable

Cannot convert the "Microsoft.PowerShell.Commands.GenericMeasureInfo" value of type "Microsoft.PowerShell.Commands.GenericMeasureInfo" to type "System.Double".

Code:

$Path = "C:\Nikhil" 
$Workspace = (Get-ChildItem $Path -recurse | Measure-Object -property length -sum) 
"{0:N2}" -f ($Workspace.sum/1GB) 
$Workspace1 = $Workspace -as [double] 
$Percentage = ($Workspace1/6143.87)*100 
if($Percentage -le 85) 
{ 
    $body += "`t" + $Path + " is $Percentage percent utilized. " 
} 

Könnten Sie mir bitte korrigieren, wo ich falsch mache? Danke im Voraus.

Antwort

2

Diese Linie

$Workspace1 = $Workspace -as [double] 

Sollte mit Eigenschaften, keine Zahl

$Workspace1 = $Workspace.Sum -as [double] 

Da $ Workspace ist ein Messobjekt sein.

+2

++, aber es ist auch erwähnenswert, dass '.Sum' bereits _is_ a' [double] 'ist, so dass es überhaupt nicht notwendig ist, es zu konvertieren (verifizieren mit' (Measure-Object -Sum) .Sum.GetType)() .FullName'). – mklement0

+1

guter Punkt. Ich habe nicht einmal darüber nachgedacht. –

Verwandte Themen