Bonjour,

je suis nouveau sur ce forum, j'ai fais un petit programme powershel qui fonctionne mais que je ne trouve pas très esthétique et performant.

Il est fait à l'ancienne.

c'est mon premier programme en PS, donc j'ai beaucoup à apprendre.
le BUT suite à réception d'un fichier CSV, il me faut créer une aborescence de dossiers windows.

le fichier est structure comme SUIT:
CODE Libelle Niveau CODE -1
___________________________________________________
3005 , FRUIT , 2 , 3000
5000 , AGRUME , 3 , 3005
5005 , CITRON , 4 , 5000
5011 , ORANGE , 4 , 5000
5012 , MENDARINE , 4 , 5000
5013 , CLEMENTINE , 4 , 5000
5031 , ABRICOT , 4 , 3005
3006 , POMME , 2 , 3000
Le but est d'utiliser la notion de code -1 pour voir à quel niveau dans l'arborescence créer le dossier.

3000
|_> 3005
|_> 5000
|_> 5005
|_> 5011
|_> 5012
|_> 5013
|_> 5031
|_> 3006

Au départ je voulais faire une fois la lecture du fichier et le stocker dans un tableau à plusieurs dimensions mais ca n'a pas marché....

Voici mon code
clear
$fichier = Get-Content C:\toto.csv
cd 'C:\Arbo code'

Foreach ($line in $fichier) {
$line_splitted = $line.split(",")
$CODE=$line_splitted[0]
$LIB=$line_splitted[1]
$NIV=$line_splitted[2]
$CODE1=$line_splitted[3]
if (($niv -eq "1") -and ($CODE -eq "3000" -or ($CODE -eq "2010"))){
Write-Host "$CODE $LIB $NIV $CODE1"
New-Item -Name "$CODE" -ItemType directory
$entite=$CODE

Foreach ($line in $fichier) {
$line_splitted = $line.split(",")
$CODE=$line_splitted[0]
$LIB=$line_splitted[1]
$NIV=$line_splitted[2]
$CODE1=$line_splitted[3]
if ($CODE1 -eq $Entite){
New-Item -Name "$Entite\$CODE" -ItemType directory
$Categ=$CODE

Foreach ($line in $fichier) {
$line_splitted = $line.split(",")
$CODE=$line_splitted[0]
$LIB=$line_splitted[1]
$NIV=$line_splitted[2]
$CODE1=$line_splitted[3]
if ($CODE1 -eq $Categ){
New-Item -Name "$Entite\$Categ\$CODE" -ItemType directory
$Esp=$CODE

Foreach ($line in $fichier) {
$line_splitted = $line.split(",")
$CODE=$line_splitted[0]
$LIB=$line_splitted[1]
$NIV=$line_splitted[2]
$CODE1=$line_splitted[3]
if ($CODE1 -eq $Esp){
New-Item -Name "$Entite\$Categ\$Esp\$CODE" -ItemType directory
}
}

}
}
}
}
}

}
Si vous avez des idées