[RESOLU][powershell 2.0] Lecture de fichier properties problématique..

Lecture de fichier properties problématique.. [RESOLU][powershell 2.0] - Shell/Batch - Programmation

Marsh Posté le 16-04-2014 à 10:54:47    

J'ai un léger problème de lecture de fichier de properties.
Mon fichier contient les valeurs suivantes :
 

Code :
  1. truc = machin
  2. bidule = pouet


 
(D'après mes tests, je n'ai pas l'impression que les espaces autour du "=" changent grand chose)
 
Je le lis en PowerShell V2.0 de la manière suivante :
 

Code :
  1. $ConfigProps = (Get-Content ./properties/config.properties) | convertfrom-stringdata


 
La variable $ConfigProps m'affiche bien les lignes suivantes :
 

Citation :

Name                           Value                                                                                                                    
----                           -----                                                                                                                    
truc                           machin                                                                                                                  
bidule                         pouet  


 
Mon problème est la récupération liée par exemple à "truc". J'ai essayé les syntaxes suivantes (dont certaines doivent marcher, d'après ce que je lis sur le net) :
 

Code :
  1. $ConfigProps.'truc'
  2. $ConfigProps."truc"
  3. $ConfigProps["truc"]
  4. $ConfigProps[truc]
  5. $ConfigProps.truc


 
Et, chose étrange, j'arrive à récupérer une ligne avec
 

Code :
  1. $ConfigProps[5]


 
Avec "5" qui est le numéro de lignes (-1) dans mon fichier properties d'origine et pas le nombre de valeurs dans ConfigProps ! Donc si j'ai des lignes de commentaires dans mon fichier, cela perturbe un peu tout.
Ce n'est clairement pas la solution, puisque je souhaite récupérer la valeur à partir du nom et pas à partir du numéro de ligne, mais de plus, en essayant $ConfigProps[5].Name ou .Value ne fonctionne toujours pas.
 
En résumé : comment faire pour afficher la valeur à partir du nom ? La méthode prise en premier lieu est-elle la bonne, ou faut-il que je passe par quelque chose de plus verbeux (mais qui fonctionnerait) ?


Message édité par CerfPyvert le 16-04-2014 à 11:41:00
Reply

Marsh Posté le 16-04-2014 à 10:54:47   

Reply

Marsh Posté le 16-04-2014 à 11:40:05    

Bon bah voilà, à 5 mins près je l'avais. C'était ma méthode de base qui ne fonctionnait pas, pour une raison que j'ignore.
 
La méthode suivante marche mieux :

Code :
  1. # propsPath est le chemin du fichier properties, on passe d'abord le fichier en String PUIS on fait appelle à convertfrom-stringdata
  2. $propsContent = Get-Content -Path $propsPath | Out-String
  3. $ConfigProps = convertfrom-stringdata -StringData $propsContent
  4. $ConfigProps.'truc'


 
Ca m'affiche bien "machin". Il devait y avoir un problème avec le pipe dans le code précédent.
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed