Question [fonction]Suppression de fichier ETS d'un runspace

Plus d'informations
il y a 10 ans 2 mois #16950 par Laurent Dardenne
Lors des phases de développement d'un module on peut importer un module ayant des erreurs de syntaxe, dans ce cas et si vous utilisez un manifeste, les fichiers PS1XML restent chargés en mémoire et empêchent le rechargement du module, nécessitant de fermer puis de réouvrir une console.

Ces deux fonctions recherche et supprime dans la configuration du runspace courant, les fichiers de formatage ou de type spécifiés.
[code:1]
Function Search-ETSPs1xmlIndex {
#Recherche dans $RunspaceCollection
#le numéro d'index de chaque fichier présent dans $XMLFiles
param (
$RunspaceCollection,
$XMLFiles
)

$i=-1
$RunspaceCollection|
Foreach-object {$i++;($Current=$_)}|
Where-object {
#Write-Debug \"[$i] search $Current\"
$XMLFiles -Contains $_.Filename
}|
Foreach {
Write-Debug \"[$i] match $Current\"
New-Object PSObject -property @{ index=$i;value=$Current}
}
}#Search-ETSPs1xmlIndex

Function Remove-ETSPs1XMLData {
#Supprime des entrées indexées dans $RunspaceCollection
#$ItemsIndex contient la liste des entrées à supprimer.
#Les numéro d'index sont déceémernté à chaque suppression
param (
$RunspaceCollection,
$ItemsIndex
)

$Count=0
$ItemsIndex|
Sort-Object Index|
Foreach-Object {
Write-Debug (\"Supprime {0}\" -F $_.Value.Filename)
$RunspaceCollection.RemoveItem(($_.Index-$Count))
$Count++
}
}#Remove-ETSPs1XMLData

$RS=[System.Management.Automation.Runspaces.Runspace]::«»DefaultRunspace
$FrmtIndex=Search-ETSPs1xmlIndex $rs.RunspaceConfiguration.Formats $Formats
Remove-ETSPs1XMLData $rs.RunspaceConfiguration.Formats $FrmtIndex

$TypesIndex=Search-ETSPs1xmlIndex $rs.RunspaceConfiguration.Types $Types
Remove-ETSPs1XMLData $rs.RunspaceConfiguration.Types $TypesIndex
[/code:1]
Comme c'est du code de dev, il n'y a pas de contrôle de validité...

[edit]
Sous PS V4 utilisez :
[code:1] $Host.Runspace.InitialSessionState[/code:1]
A confirmer...

Message édité par: Laurent Dardenne, à: 12/02/14 20:56<br><br>Message édité par: Laurent Dardenne, à: 25/02/14 16:39

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.061 secondes
Propulsé par Kunena