[POWERSHELL] Import CSV | Array et Hashtable structurés !

Import CSV | Array et Hashtable structurés ! [POWERSHELL] - Shell/Batch - Programmation

Marsh Posté le 13-06-2013 à 08:34:29    

Bonjour à tous,
 
Je travail sur sharepoint 2013 en ce moment. Je dois écrire un script pour importer les anciennes applications web, collections de sites, et autres.
Tout ça, à partir d'une fichier csv.
 
Le problème est que mon fichier csv est de la sorte :
 
AppliWeb\{sous-site1}\{sous-site2}\Titre\biblio GROUPE DROIT [TABULATION] GROUPE DROIT
 
( {sous-site1/2} sont facultatifs et peuvent être vide.)
 
Donc je me demandais comment gérer en powershell le fait d'avoir un premier Delimiter en \ et ensuite en TABULATION.
 
Si quelque uns parmis vous ont des liens pour m'aider là-dessus :) ou des connaissances !
 
 
Cdt,
 
Nicolas.


Message édité par nico1705 le 13-06-2013 à 13:15:54
Reply

Marsh Posté le 13-06-2013 à 08:34:29   

Reply

Marsh Posté le 13-06-2013 à 13:13:56    

Bon j'ai réussi à gérer les \ à mettre les truc entre tabulation dans un fichier, en en ayant 1 par ligne, à supprimer la premiere ligne qui ne m'intéressait pas.
 
Maintenant je me retrouve avec un fichier type :
 
nomgroup1
droitgroup1
nomgroup2
droitgroup2
nomgroup3
droitgroup3
 
J'ai voulu le mettre dans un tableau avec une boucle, mais impossible :o le but étant de pouvoir les appeler un par un. Le mieux serait $groupe[1].nomgroupe et $groupe[1].droit pour pouvoir faire une boucle avec après...
 
J'ai donc voulu créer un tableau structuré : $tab = @{key1=value1;...}.
Mais je ne peux pas appeler $tab[1].keys ou values !!!
 
Si quelqu'un a une solution, je suis preneur, car je bloque là-dessus, et je ne sais vraiment pas comment faire :s
 
Merci d'avance,
 
Cdt,
 
Nico.

Reply

Marsh Posté le 13-06-2013 à 14:29:29    

Bon réponse trouvée tout seul =/
 
Je la link ici au cas où quelqu'un passe par là :
 

Code :
  1. #découpage de la derniere colonne du csv en une ligne = une info. donc ligne 1 = nom groupe 1, ligne 2 = droit groupe 1, etc...
  2. $adecouper = ($line.'NomColonneCSV').split("`t" )


 

Code :
  1. #On supprime la ligne qui est le header, et donc inintéressante
  2. $adecouper = $adecouper[1..($adecouper.Count)]


 

Code :
  1. #Sortie des Groupes et de leurs Droits respectifs.
  2. #Indice remis à 0 après suppression de la permiere ligne.
  3. #On commence donc à $i=0 -> Nom du groupe 1 avec $i+1 -> Droit du groupe 1
  4. #Puis on passe a $i = $i+2, donc $i=2 -> NomGroupe2 $i+1 -> Droit du groupe 2
  5. #Etc...
  6. for ($i=0 ;$i -lt $adecouper.Count-1) {
  7. Write-Host "Nom groupe : " $adecouper[$i] "`t`t||`t`t" $adecouper[$i+1]
  8. $i=$i+2
  9. }


 
Ici je fais un Write-Host, mais bien sûr on peut faire autre chose ;)
 
 
Nico.

Reply

Sujets relatifs:

Leave a Replay

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