IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Amélioration de code


Sujet :

Scripts/Batch

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 1
    Par défaut Amélioration de code
    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

  2. #2
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Par défaut
    Salut wince34 et bienvenu,

    tu pourrais rester dans ta boucle et et faire une recherche récursive du dossier $CODE1, un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Get-ChildItem -Recurse | Where-Object { $_.name -eq $CODE1 } | Select-Object -ExpandProperty FullName
    et créer le dossier avec la concaténation de ce dernier chemin avec $CODE


  3. #3
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par vodiem Voir le message
    tu pourrais rester dans ta boucle et et faire une recherche récursive du dossier $CODE1
    Une autre réponse ici.

Discussions similaires

  1. Amélioration de code
    Par Devilju69 dans le forum Langage
    Réponses: 3
    Dernier message: 07/10/2008, 15h01
  2. Optimisations et Améliorations de code
    Par womannosky dans le forum Langage
    Réponses: 19
    Dernier message: 02/07/2008, 15h05
  3. [Optimisation]Peut-on améliorer ce code ?
    Par progfou dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 09/08/2007, 15h43
  4. [Tableaux] Amélioration de code (if)
    Par Sir Tengu dans le forum Langage
    Réponses: 3
    Dernier message: 24/12/2006, 00h26
  5. [Sécurité] Comment amélioré mon code ?
    Par Nadd dans le forum Langage
    Réponses: 14
    Dernier message: 03/03/2006, 20h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo