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 :

Lister les répertoires d'un disque avec sa date


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Janvier 2015
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2015
    Messages : 62
    Par défaut Lister les répertoires d'un disque avec sa date
    Bonjour,

    Je cherche un script ou une commande qui fouille un disque dur, extrait le nom de tous les répertoires + leur date et vide le résultat dans un fichier.

    Ce que j'attends doit être 1 ligne = un répertoire

    Par exemple :
    c:\toto 26/05/2016
    c:\toto\aaa 26/05/2016
    c:\toto\bbb 24/05/2016
    c:\toto\cccc 23/05/2016
    ...

    Les commandes DOS "Tree" ou "dir" ne peuvent donc pas faire l'affaire.

    Le top serait qu'un séparateur soit placcé entre le nom du répertoire et sa taille bien qu'un espace ou une tabulation puisse aussi faire l'affaire.

    J'ai essayer de voir sur divers sites de scripts PS mais je ne trouve pas mon bonheur.

    Je ne sais pas si c'est hyper déterminent mais je suis en Powershell 2 sur mon PC

    Name Value
    ---- -----
    CLRVersion 2.0.50727.5485
    BuildVersion 6.1.7601.17514
    PSVersion 2.0
    WSManStackVersion 2.0
    PSCompatibleVersions {1.0, 2.0}
    SerializationVersion 1.1.0.1
    PSRemotingProtocolVersion 2.1


    Quelqu'un pourrait m'aider ?

    Merci par avance !

  2. #2
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844

  3. #3
    Membre confirmé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Janvier 2015
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2015
    Messages : 62
    Par défaut
    Bonjour hackoofr

    Je n'ai rien contre le vbscript mais ce n'est pas le résultat attendu.

    Cela me donne la liste des fichiers que je ne souhaite pas, leur taille que je ne souhaite pas ... mais ne me donne rien sur la date des répertoires

    C'est bien la liste des répertoires et sous-répertoires avec leur dates qui m'intéresse et dans un format plus exploitable comme un fichier txt, csv, excel, ... pas dans un html dynamique.

    Merci quand même pour ton aide.

  4. #4
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut
    Citation Envoyé par YvesProvence Voir le message
    Bonjour hackoofr

    Je n'ai rien contre le vbscript mais ce n'est pas le résultat attendu.

    Cela me donne la liste des fichiers que je ne souhaite pas, leur taille que je ne souhaite pas ... mais ne me donne rien sur la date des répertoires

    C'est bien la liste des répertoires et sous-répertoires avec leur dates qui m'intéresse et dans un format plus exploitable comme un fichier txt, csv, excel, ... pas dans un html dynamique.

    Merci quand même pour ton aide.
    Dans ce cas tester ce vbscript que je viens juste de le créer :
    Remarque : Pour la génération en fichier texte du résultat , je vais la faire après
    Code vb : 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
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    objStartFolder = "C:\Hackoo\"
    Set objFolder = objFSO.GetFolder(objStartFolder)
    Wscript.Echo objFolder.Path & vbtab & objFolder.DateLastModified & vbtab & GetSize(objFolder.Path)  
    Call ShowSubfolders(objFolder)
    '**************************************************************
    Sub ShowSubFolders(Folder)
        For Each Subfolder in Folder.SubFolders
            Out = Out & Subfolder.Path & vbtab & Subfolder.DateLastModified & vbtab & GetSize(Subfolder.Path) & vbcrLf 
        Next
        Wscript.Echo Out
    End Sub
     '**************************************************************
    Function GetSize(MyFolder)
       Set fso = CreateObject("Scripting.FileSystemObject")
       Set objFolder= fso.GetFolder(MyFolder)  
       GetSize = FormatSize(objFolder.Size)
    End Function
    '*******************************************************************
    Function FormatSize(iSize)
       aLabel = Array("bytes", "KB", "MB", "GB", "TB")
       For i = 0 to 4
           If iSize > 1024 Then
               iSize = iSize / 1024
           Else
               Exit For
           End If
       Next
       FormatSize = Round(iSize,2) & " " & aLabel(i)
    End Function
    '*******************************************************************

  5. #5
    Membre confirmé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Janvier 2015
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2015
    Messages : 62
    Par défaut
    Bravo c'est ce genre de chose que je recherche mais j'ai des remarques

    1 - la sortie : plutôt que dans des boites de dialogue, tu peux générer un fichier txt en sortie.
    2 - je n'ai pas besoin de la taille, juste la date
    3 - il semble que cela ne scanne pas l'ensemble des répertoires mais juste les 2 premiers niveaux ... et c'est au fin fond des disques que l'on trouve des répertoires perdus et sans aucun accès depuis longtemps

    Merci à toi pour ton investissement

  6. #6
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut
    Citation Envoyé par YvesProvence Voir le message
    Bravo c'est ce genre de chose que je recherche mais j'ai des remarques

    1 - la sortie : plutôt que dans des boites de dialogue, tu peux générer un fichier txt en sortie.
    2 - je n'ai pas besoin de la taille, juste la date
    3 - il semble que cela ne scanne pas l'ensemble des répertoires mais juste les 2 premiers niveaux ... et c'est au fin fond des disques que l'on trouve des répertoires perdus et sans aucun accès depuis longtemps

    Merci à toi pour ton investissement
    Tester cette modification
    Code vb : 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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    Option Explicit
    Dim objFSO,objStartFolder,objFolder,LogFile,strResult,ws
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    objStartFolder = Parcourir_Dossier
    Set objFolder = objFSO.GetFolder(objStartFolder)
    LogFile = Left(Wscript.ScriptFullName, InstrRev(Wscript.ScriptFullName, ".")) & "txt"
    On Error Resume Next
    strResult = strResult & objFolder.Path & vbtab & objFolder.DateLastModified & vbcrLf
    Call ShowSubfolders(objFolder)
     
    If objFSO.FileExists(LogFile) Then
        objFSO.DeleteFile(LogFile)
    End If
    Call WriteLog(strResult,LogFile)
     
    set ws = CreateObject("wscript.shell")
    ws.run "Notepad "& LogFile
     
    '**************************************************************
    Sub ShowSubFolders(Folder)
        Dim Subfolder
        Set Folder = objFSO.GetFolder(Folder)
        For Each Subfolder in Folder.SubFolders
            strResult = strResult & Subfolder.Path & vbtab & Subfolder.DateLastModified & vbcrLf 
            Call ShowSubFolders(SubFolder.Path)
        Next
        Call WriteLog(strResult,LogFile)
    End Sub
    '**************************************************************
    Function GetSize(MyFolder)
        Set objFSO = CreateObject("Scripting.FileSystemObject")
        Set objFolder= objFSO.GetFolder(MyFolder)  
        GetSize = FormatSize(objFolder.Size)
    End Function
    '*************************************************************************
    Function FormatSize(iSize)
        Dim aLabel,i
        aLabel = Array("bytes", "KB", "MB", "GB", "TB")
        For i = 0 to 4
            If iSize > 1024 Then
                iSize = iSize / 1024
            Else
                Exit For
            End If
        Next
        FormatSize = Round(iSize,2) & " " & aLabel(i)
    End Function
    '*************************************************************************
    Sub WriteLog(strText,LogFile)
        Dim objFSO,ts 
        Const ForAppending = 8
        Set objFSO = CreateObject("Scripting.FileSystemObject")
        Set ts = objFSO.OpenTextFile(LogFile,ForAppending,True,-1)
        ts.WriteLine strText
        ts.Close
    End Sub
     
    '*************************************************************************
    Function Parcourir_Dossier()
        Dim objShell,objFolder,NomDossier
        Set objShell = CreateObject("Shell.Application")
        Set objFolder = objShell.BrowseForFolder(0, "Veuillez choisir un dossier pour la recherche ",1,"c:\Programs")
        If objFolder Is Nothing Then
            Wscript.Quit
        End If
        NomDossier = objFolder.title
        Parcourir_Dossier = objFolder.self.path
    end Function
    '*************************************************************************

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/01/2012, 10h03
  2. [OpenOffice][Base de données] Lister les répertoires et disques en VB Ooo
    Par Papy Octet dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 24/11/2008, 13h01
  3. Lister les secteurs d'un disque
    Par velociraptor5679 dans le forum Windows
    Réponses: 18
    Dernier message: 24/06/2006, 11h09
  4. Lister les diques dur du PC avec la commannde Dir
    Par Edoxituz dans le forum Windows
    Réponses: 2
    Dernier message: 02/03/2006, 16h50
  5. Lister les répertoires d'un répertoire
    Par Faith's Fall dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/02/2006, 11h01

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