Project

General

Profile

Resource

La version 1.0 de PowerShell ne dispose pas nativement d’un procédé de gestion
des ressources :

«Une ressource est une donnée non exécutable qui est déployée logiquement avec une
application. Une ressource peut être affichée dans une application sous la forme d'un message
d'erreur ou comme faisant partie de l'interface utilisateur. Les ressources peuvent contenir des
données sous plusieurs formes, telles que des chaînes, des images et des objets rendus
persistants. Le stockage de vos données dans un fichier de ressources vous permet de changer
les données sans avoir à recompiler l'intégralité de votre application. Pour écrire des objets
rendus persistants dans un fichier de ressources, les objets doivent être sérialisables.»

Le lien suivant contient le détail des fonctions de manipulation de fichier resource dotnet :
  • PackageResource.ps1
    Ces fonctions orientées cmdlet s'appuient sur les classes dotnet ResourceWriter et ResourceReader.

L'exemple suivant génére un fichier de ressource dotnet, à partir de fichiers de certains types contenus dans un répertoire :

Get-ChildItem *|
 Where-Object { ($_.PSIsContainer -eq 0) -and ($_.Extension -match "(.jpg|.bmp|.ico|.gif|.tiff|.txt)")}|
 ConvertTo-Resource|
 Create-Resource (join-path $pwd Tst1.resources)

Un exemple d’utilisation de fichier .resources pour localiser un script :

$ht_en_US=@{Bienvenue="Hello"}
$ht_de_DE=@{Bienvenue="Hallo"}
$ht_es_ES=@{Bienvenue="Hola"}
$ht_fr_FR=@{Bienvenue="Salut"}

$resName="en-US" 
$FileName=(join-path $pwd "$resName.resources")

$ht_en_US|ConvertTo-Resource -FromHashTable|Export-Resource $FileName

$Msg=Import-Resource $FileName
$Msg."Bienvenue" #Affiche Hello

Vous trouverez le détail de ces scripts dans le tutoriel, Gestion des ressources sous PowerShell