none
Compter le nombre de dossier dans chaque repertoire + export RRS feed

  • Question

  • Bonjour,

    Je cherche une commande pour compter le nombre de dossiers dans plusieurs répertoires (plus de 500).

    Repertoire1 

                   * dossier

    Repertoire2

                   * dossier

    Repertoire3

                   * dossier

    Et importer tout ça en CSV si c'est possible, mais je suis très nul en powershell, pourriez-vous m'aider s'il vous plaît?

    Merci

    mardi 3 juillet 2018 09:40

Toutes les réponses

  • Salut,

    Ces répertoires sont dans un fichier .txt .csv ? Ou bien il s'agit de répertoire présent dans un seul grand répertoire ?

    Déjà pour compter le nombre de dossier: ( Get-ChildItem -Directory | Measure-Object ).Count

    Pour le reste, j'attends la réponse à la question plus haut :)

    mardi 3 juillet 2018 09:48
  • Merci pour la réponse.

    Ce sont plusieurs dossier dans un seul grand qui se trouve sur un lecteur reseau.

    mardi 3 juillet 2018 12:16
  • $rootFolder = "P:\"
    $extractPath = "C:\temp\csv.csv"
    
    $FoldersToScan = Get-ChildItem -Path $rootFolder -Directory
    
    $array = @()
    ForEach ($Folder in $FoldersToScan) {
    
        Get-ChildItem -Path $Folder.FullName -Directory | ForEach-Object {
            $FullPath = $_.FullName
            $Count = ( Get-ChildItem -Path $FullPath -Directory | Measure-Object ).Count
            
    
            $array += [PSCustomObject]@{
                FullPath   = $FullPath
                Count    = $Count
            }
        }
    
    }
    
    $array | Export-CSV $extractPath -NoTypeInformation

    Je pense être pas trop mal et répondre à la demande, n'hésites pas à me le confirmer (ou me prévenir si tu as un soucis)

    Tu as ces deux variables à modifier:

    $rootFolder = "P:\"
    $extractPath = "C:\temp\csv.csv"

    Donc $rootFolder correspond à ton dossier "source" (le grand) et $extractPath à "où va aller le fichier" (fichier .CSV!)

    Tu as parlé de dossier, donc j'ai mis un paramètre -Directory qui permet de prendre que les dossiers en compte et je n'ai pas mis de -Recurse ce qui veut dire qu'il n'ira pas chercher les répertoires en dessous

    • Proposé comme réponse Romain Wager vendredi 27 juillet 2018 08:25
    mardi 3 juillet 2018 12:38
  • Merci celà fonctionne impeccable, mais il descend un cran de trop.

    Je lui indique l'endroit où se trouve le grand répertoire (D:\Fichiers\***\---) et il me compte tous les répertoires de chaque.

    Je m'explique : il me compte la le contenue d’information comptable,information fiscale, etc. il me faudrait juste le nombre de répertoires de 2TK pas plus bas.

    D:\Fichiers\***\---\2TK\INFORMATIONS COMPTABLES 

    D:\Fichiers\***\---\2TK\INFORMATIONS FISCALES

    D:\Fichiers\***\---\2TK\INFORMATIONS GENERALES

    D:\Fichiers\***\---\2TK\INFORMATIONS JURIDIQUES

    D:\Fichiers\***\---\2TK\INFORMATIONS SOCIALES

    Mon grand répertoire se trouve au niveau des tirets. c'est le chemin que je donne dans le script.

    Il liste tous les sous-répertoires de 2TK et me donne le nombre de dossiers .Il me faut juste le nombre de dossiers de 2TK

    Je ne sais pas si je suis clair ^^


    mardi 3 juillet 2018 16:16
  • Désolé pour ma réponse tardive, dans ce cas il faut supprimer un foreach je pense, j'ai dû en mettre un de trop :)

    $rootFolder = "P:\"
    $extractPath = "C:\temp\csv.csv"
    
    $FoldersToScan = Get-ChildItem -Path $rootFolder -Directory
    
    $array = @()
    ForEach ($Folder in $FoldersToScan) {
    
        #Get-ChildItem -Path $Folder.FullName -Directory | ForEach-Object {
            $FullPath = $Folder.FullName
            $Count = ( Get-ChildItem -Path $FullPath -Directory | Measure-Object ).Count
            
    
            $array += [PSCustomObject]@{
                FullPath   = $FullPath
                Count    = $Count
            }
        #}
    
    }
    
    $array | Export-CSV $extractPath -NoTypeInformation

    • Proposé comme réponse Romain Wager vendredi 27 juillet 2018 08:27
    vendredi 27 juillet 2018 08:27