Powershell V3 +:
ich ein Modul bietet verschiedene Cmdlets geeignet für interaktive Nutzung hier schreibe. Ich versuche zu erreichen, dass Variablen (Objekte) zerstört werden, ohne dass der Benutzer remove-variable verwenden muss.Powershell - Entfernen „eigenes“ Objekt mit Script
Beispiel:
$object = open-object -someparam
$object # returns something
close-object -reference $object
$object # is not defined anymore - similiar to remove-variable
ich nicht die oben arbeiten, alternative Ansätze wie die unten auch versäumt haben, verwalten könnte zu erhalten.
$x = New-Object -TypeName PSCustomObject
$x | Add-Member -type NoteProperty -Name Justsomedata -Value Nomeaning
$x | Add-Member -type ScriptMethod -Name killme -Value { $this = $null }
$x
$x.killme()
$x # :-(
Irgendwelche Vorschläge? Ich möchte verhindern, dass es Variablen im User-Runspace gibt, die nicht mehr nutzbar sind.
Unter normalen Umständen sind nicht die Objekte mehr oder weniger richtig de-zugewiesen, wenn die Variable den Gültigkeitsbereich verlässt ? –
Sie würden, ja, das Problem ist, wenn Sie interaktiv mit den Cmdlets arbeiten sie nicht aus dem Geltungsbereich gehen, bis die Sitzung geschlossen wird. – Joel
Interaktiv glaube ich nicht, dass dies getan werden kann, und ich bin mir nicht sicher, ob ich mir eine Situation vorstellen kann, in der ich _wollte_ es funktionieren würde, anstatt einfach einen Fehler zu werfen, wenn ich eine Variable verwende, die ein Nein hat. länger gültiger Wert –