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 :

Existe t'il une méthode pour accélerer PowerShell? [PowerShell]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Octobre 2017
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Octobre 2017
    Messages : 28
    Par défaut Existe t'il une méthode pour accélerer PowerShell?
    Bonjour,

    Je viens vers vous étant à cours de solution.

    Alors voilà j'ai un script qui doit traité 36 .txt, d'environ 500 000 lignes chacun sachant aussi que certaines lignes sont obsolètes. Pour cela j'ai rajouté -EA SilentlyContinue.

    Mon problème est le suivant ayant beaucoup de ligne a traité je voulais savoir si il existait un moyen d’accélérer l'exécution du script pour ainsi évité d'impacter le serveur en prod' je vous mets donc mon script a disposition.

    #Rechcerche du fichier spécifique
    $file2 = "C:\Users\*.txt"

    #Initailisation des différentes variables permettant de savoir le nombre total de fichiers et la taille total se trouvant dans $file2
    $NumberOfFilesTotal = 0
    $tailleTotal = 0

    #Initailisation de la variable $list permettant la lecture de chaque ligne dans le $file2
    $list = Get-Content $file2
    $list | foreach {
    #Lecture des différentes lignes
    $list = $_

    #Calcul du nombre de fichiers
    $NumberOfFiles = Get-ChildItem -path $list -Recurse -force -EA silentlycontinue -include *.*| Measure-Object | %{$_.Count}

    #Calcul de la taille de chaque fichiers se trouvant dans $file2
    $taille = ((Get-ChildItem -path $list -Recurse -force -EA silentlycontinue -include *.* | Measure-Object -Property Length -Sum -ErrorAction Stop).Sum)

    #Incrémentation de tous les fichiers se trouvant dans $file2
    $NumberOfFilesTotal += $NumberOfFiles

    #Incrémentation de toutes les tailles se trouvant dans $file2
    $tailleTotal += $taille
    }
    #Conversion de bytes en MégaBytes
    $tailletotal = $tailleTotal /1048576

    #Ecriture du résultat à l'écran
    Write-Host "Il y a" $NumberOfFilesTotal "fichiers, dossiers et de sous dossiers" -ForegroundColor Yellow
    Write-Host "Le fichier fait" $tailleTotal "MB" -ForegroundColor Green

    #Enregistrement des différents retours de variable
    #$NumberOfFilesTotal | Export-CSV -Path "C:\users\$env:USERNAME\$env:COMPUTERNAME-NombreDeFichier.csv"
    #$tailleTotal | Export-CSV -Path "c:\users\$env:USERNAME\$env:COMPUTERNAME-TailleTotal.csv"
    $Fichier1="Il y a" + " " + $NumberOfFilesTotal+ " " + "fichiers sur" + " " + $env:COMPUTERNAME
    $Fichier1 > "C:\users\$env:USERNAME\$env:COMPUTERNAME-NombreDeFichier.csv"
    $Fichier2="La taille total est de" + " " + $tailleTotal + " " + "MB sur"+ " " + $env:COMPUTERNAME
    $Fichier2 > "c:\users\$env:USERNAME\$env:COMPUTERNAME-TailleTotal.csv"

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Peux tu utiliser les balises "code=powershell" pour ton code STP ?

    Que souhaites tu obtenir ? Il semblerait que se soit uniquement la taille total des fichiers et leurs nombres correspondant au motif de recherche "C:\Users\*.txt" ?
    Si oui, il n'y a pas d’intérêt à lire le contenu qui est l'opération la plus consommatrice.

  3. #3
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Peut être que je n'ai pas bien comprit, à quoi sert et à quoi ressemble tes 36 fichiers .txt ?

  4. #4
    Membre averti
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Octobre 2017
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Octobre 2017
    Messages : 28
    Par défaut
    Je souhaite obtenir un fichier excel avec le nombre de fichier et la taille total.
    Les fichiers txt se formule comme cela :
    \\chemin\dossier\fichier.doc
    \\chemin\dossier\fichier2.doc
    \\chemin\dossier\fichier3.pdf
    \\chemin\dossier\fichier.tif

    J'ai donc besoin de lire les fichiers .txt pour savoir ou se trouve le fichier en question le nombre qu'il y en a et le taille total.

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    #Rechcerche du fichier spécifique
    $file2 = "C:\Users\*.txt"
     
    #Initailisation des différentes variables permettant de savoir le nombre  total de fichiers et la taille total se trouvant dans $file2
    $NumberOfFilesTotal = 0
    $tailleTotal = 0
     
    #Initailisation de la variable $list permettant la lecture de chaque ligne dans le $file2
    $list = Get-Content $file2
    $list | foreach { 
    #Lecture des différentes lignes
        $list = $_ 
     
        #Calcul du nombre de fichiers
        $NumberOfFiles = Get-ChildItem -path $list -Recurse -force -EA silentlycontinue -include *.*| Measure-Object | %{$_.Count}
     
        #Calcul de la taille de chaque fichiers se trouvant dans $file2
        $taille = ((Get-ChildItem -path $list -Recurse -force -EA  silentlycontinue -include *.* | Measure-Object -Property Length -Sum  -ErrorAction Stop).Sum)
     
        #Incrémentation de tous les fichiers se trouvant dans $file2
        $NumberOfFilesTotal += $NumberOfFiles 
     
        #Incrémentation de toutes les tailles se trouvant dans $file2
        $tailleTotal += $taille 
                        }
    #Conversion de bytes en MégaBytes
    $tailletotal = $tailleTotal /1048576
     
    #Ecriture du résultat à l'écran
    Write-Host "Il y a" $NumberOfFilesTotal  "fichiers, dossiers et de sous dossiers" -ForegroundColor Yellow
    Write-Host "Le fichier fait" $tailleTotal "MB" -ForegroundColor Green
     
    #Enregistrement des différents retours de variable 
    #$NumberOfFilesTotal |  Export-CSV -Path "C:\users\$env:USERNAME\$env:COMPUTERNAME-NombreDeFichier.csv"
    #$tailleTotal | Export-CSV -Path  "c:\users\$env:USERNAME\$env:COMPUTERNAME-TailleTotal.csv"
    $Fichier1="Il y a" + " " + $NumberOfFilesTotal+ " " + "fichiers sur" + " " + $env:COMPUTERNAME
    $Fichier1 > "C:\users\$env:USERNAME\$env:COMPUTERNAME-NombreDeFichier.csv"
    $Fichier2="La taille total est de" + " " + $tailleTotal + " " + "MB sur"+ " " + $env:COMPUTERNAME
    $Fichier2 > "c:\users\$env:USERNAME\$env:COMPUTERNAME-TailleTotal.csv"

  5. #5
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Ok donc il faut effectivement que tu lise tes x fichiers .txt

    Il semblerait que chaque ligne, de tes fichiers textes, corresponde à 1 fichiers (selon l'exemple que tu m'a transmis) maximum, ou 0 si il n'existe pas.

    Tu confirmes ma supposition ?

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Nous allons devoir tenter d'optimiser ton script, nous devons donc évaluer précisément le contexte dans lequel il se déroule

    chemin et dossier sont ils toujours identiques ?

  7. #7
    Membre averti
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Octobre 2017
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Octobre 2017
    Messages : 28
    Par défaut
    C'est exactement ça, une ligne 1 fichier.

  8. #8
    Membre averti
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Octobre 2017
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Octobre 2017
    Messages : 28
    Par défaut
    Le début oui il pointe vers un serveur et après ce n'ai pas toujours le cas.

    Et certains fichiers.txt ont le même chemin/ dossier parent. Ce qui normalement voudrait dire j'utilise un logiciel tiers ou via powershell pour mesurer le dossier parent, mais dans ce dossier parent j'ai peut-être 66% des fichiers (.doc,.pdf,.jpg...) qui m'intéresse.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/07/2008, 12h09
  2. Réponses: 3
    Dernier message: 13/06/2006, 14h52
  3. Réponses: 2
    Dernier message: 04/06/2006, 18h53
  4. Réponses: 2
    Dernier message: 02/06/2006, 20h17
  5. Réponses: 3
    Dernier message: 21/03/2006, 13h12

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