Question [fonction]Suppression de fichier ETS d'un runspace
- Laurent Dardenne
- Auteur du sujet
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6298
- Remerciements reçus 68
il y a 9 ans 9 mois #16950
par Laurent Dardenne
Tutoriels PowerShell
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
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.064 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Contributions à la communauté
- [fonction]Suppression de fichier ETS d'un runspace