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 :

une arborescence disque detaillée via un script BATCH


Sujet :

Scripts/Batch

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    octobre 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2012
    Messages : 35
    Points : 11
    Points
    11
    Par défaut une arborescence disque detaillée via un script BATCH
    Bonjour Messieurs et Damoiselles, Mes meilleurs Voeux pour cette nouvelle année 2013 !! :bounce:

    Jusqu'à aujourd'hui tout allait pour le mieux avec mon petit script batch me permettant de créer un fichier texte comprenant l'arborescence complète d'un répertoire, sous répertoires, etc.. et fichiers + l'extension avec leur Date de dernière modification ainsi que la taille de chacun d'entre eux.
    Mais voila, désormais on me demande de faire la même chose mais dans un fichier excel en dissociant chacun de ces critères dans un cellule de mon tableau excel..

    L'idéal serait qu'une personne me dise avoir la ligne de code batch pour réaliser cette manipulation MAIS si ce n'est pas le cas, je recherche à savoir quelle commande permet de remonter une information dans une cellule précise d'un tableau excel..

    Pour donner un aperçu de mon souhait, je scanne un lecteur réseau (pré-défini dans le script) --> création d'un tableau excel affichant dans la colonne A "date de dernière modification" dans colonne B ", Le Type (répertoire ou fichier)", dans la colonne C "Arborescence répertoire", colonne D "Nom de fichier+extension" ..

    Ici est la raison pour laquelle tout allait bien et maintenant 2013 commence et on vient me compliquer la tache

    :jap: :jap: Je vous remercie par avance pour vos retours en esperant avoir été le plus clair possible et si ce n'est pas le cas alors n'esitez pas à revenir vers moi !! :jap: :jap:

  2. #2
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : janvier 2013
    Messages : 1 478
    Points : 3 880
    Points
    3 880
    Par défaut
    Reponse dans ce super tutoriel fait par Jean-philippe ANDRÉ

    http://http://jpcheck.developpez.com/tutoriels/office/excel-et-fichiers-batch-passage-parametres/

    Amicalement
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    octobre 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2012
    Messages : 35
    Points : 11
    Points
    11
    Par défaut
    Bonjour Sacha,
    Merci pour ton retour, j'ai parcourus le lien avec attention sur les actions que les batchs réalisent dans ou vers un fichier Excel.
    Afin d'obtenir le résultat recherché, je compte donc réaliser :
    - Un .bat pour Créer l’arborescence du lecteur réseau --> fichier .doc
    - Un .bat parcourant mon nouveau fichier .doc pour y extraire un contenu entre <Répertoire de C:> jusqu'à <octets> en le sauvegardant A LA SUITE d'un document .DOC créer au préalable (qui sera dans le même répertoire que le script)

    Jusque là pas de soucis j'ai réussi à mettre ça en œuvre, en revanche lorsque je tente de réitérer la manipulation (CAD copier la ligne de commande me permettant de saisir un contenu compris entre ** et **) puis de les mettre les unes derrières les autres (les lignes de commandes) == Rien ne se passe lorsque j’exécute mon .BAT..
    Quelle commande me permet de réitérer une manipulation tout en restant dans le même script , sachant que le contenu compris entre ** et ** ainsi que les répertoires de réception diffèrent d'une ligne à une autre.


    Car par rapport à mon premier commentaire ici, je pense désormais à récupérer toute l'arborescence de mon disque dur sous un .DOC
    Puis par script, je cherche à dissocier chacune des branches de l'arborescence (d'où le contenu compris de ** à **) --> nouveau document
    pour au final avoir par exemple prennons:

    Répertoire de C:\ PROJETs
    21/12/2012 <REP> Projet refonte Doc
    <FIL> 86_PTF_380X42_FR_01_1A_.pdf 466407 octets
    <FIL> 87_PTF_380X42_FR_01_1A_.pdf 466407 octets

    10/08/2012 <REP> livrables
    <FIL> Reseau.pdf 6407 octets
    <FIL> Connectiques TP200.pdf 242589 octets

    21/12/2012 <REP> Nettoyage 281689 Octets
    <FIL> Spécification - Po.pdf
    Sous repertoire |--<REP> Catia
    <FIL> SpécificationII.pdf

    Fin d'exemple

    Le but etant d'avoir un fichier .DOC pour chaque début d'arborescence avec tout le contenu (repertoires et fichiers)

    ET là je cale..........
    Avez-vous un idée pour avoir un résultat comme celui ci-dessus..

    Merci encore pour votre partage !

  4. #4
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : janvier 2013
    Messages : 1 478
    Points : 3 880
    Points
    3 880
    Par défaut
    Essaie ce programme GRATUIT qui est vraiment excellent pour récuperer l'arborescence compléte d'un disque, d'un repertoire et même de lecteurs réseau.

    Karen's Power Tools Directory Printer

    Il te génère avec l'option #save to disk# un txt ou doc avec toute l'arborescence avec ou sans les fichiers et plein de possibilitées.

    Tu pourrais ensuite créer un bat qui ferais le reste du travail

    Amicalement
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  5. #5
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    octobre 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2012
    Messages : 35
    Points : 11
    Points
    11
    Par défaut
    Bonjour Sasha,
    je viens tout juste de lire ton commentaire et vais tester ca de-suite

    Merci !

  6. #6
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    octobre 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2012
    Messages : 35
    Points : 11
    Points
    11
    Par défaut
    Bonjour à tous et à toutes,
    Tout d'abord, merci une fois encore à toi Sacha qui m'a fourni un soft très intéressant et qui colle à ce qu'il me fallait Donc !!
    Après traitement de l'appli j'ai un fichier texte comprenant mon arborescence et j'aimerais séparer toutes les branches (de l'arborescence) dans des documents uniques..
    C'est à dire :

    Dossier > C:\
    Dossier > C:\Users\
    Dossier > C:\Users\Mes documents\
    Fichier > C:\Users\Mes documents\texte.txt
    Fichier > C:\Users\Mes documents\texte2.txt
    Fichier > C:\Users\Mes documents\texte3.txt
    Total > C:\Users\ -----5000Mo

    Dossier > C:\windows\
    Dossier > C:\windows\Mes documents\
    Fichier > C:\windows\Mes documents\texte.txt
    Fichier > C:\windows\Mes documents\texte2.txt
    Fichier > C:\windows\Mes documents\texte3.txt
    Total > C:\windows\ -----6000Mo

    L'arborescence est plus grande bien sur, mon but étant de séparer ces différentes parties et qu'elles s'enregistrent dans un fichier texte que j'aurrai pré-défini..

    Je pensais à faire appel à un petit batch comprenant la fonction findSTD mais je en vois pas comment lui dire de récupérer un contenu texte à partir de "Dossier > C:\Users\" à "Total > C:\Users\".
    Ainsi de suite pour les autres branches de mon arborescence...

    Bien à Vous !
    MJ

  7. #7
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : janvier 2013
    Messages : 1 478
    Points : 3 880
    Points
    3 880
    Par défaut
    Pour chaque dossier de tu veux faire un DIR dans un fichier unique, avec la taille
    total que le dossier et ses sous-répertoires utilise sur le disque ???

    C'est pas très clair, tu peux donner un exemple plus simple avec
    ce que tu veux exactement dans ton fichier de sortie.

    Amicalement
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  8. #8
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    octobre 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2012
    Messages : 35
    Points : 11
    Points
    11
    Par défaut
    Chaque fin de mois je contrôle l’état de l'espace disque disponible..
    Imaginons un dossier de partage où de nombreuses personnes stockent des données.
    Mon rôle est de créer l'arborescence complète du disque ->>> Fait très bien grâce à Karen's Power Tools Directory (Merci Sacha ).
    Seconde étape, en partant du fichier texte générer par Karen's j'obtiens:


    Dossier > z:\partage\
    Dossier > z:\partage\User1\
    Dossier > z:\partage\User1\Mes-fichiers\
    Fichier > z:\partage\User1\Mes-fichiers\file.iso ----500Mo
    Fichier > z:\partage\User1\Mes-fichiers\file2.iso ----500Mo
    Fichier > z:\partage\User1\Mes-fichiers\file3.iso ----500Mo
    Total > z:\partage\User1\ -----1500Mo

    Dossier > z:\partage\
    Dossier > z:\partage\User2\
    Dossier > z:\partage\User2\Mes-fichiers\
    Fichier > z:\partage\User2\Mes-fichiers\texte.txt ----200Mo
    Fichier > z:\partage\User2\Mes-fichiers\texte2.txt ----200Mo
    Fichier > z:\partage\User2\Mes-fichiers\texte3.txt ----200Mo
    Total > z:\partage\User2\ -----600Mo

    ainsi de suite toujours en partant de la racine de "z:\partage\"
    Là j'ai donc un seul fichier texte comprenant toute mon arborescence.
    Le résultat recherché est de pouvoir dissocier l’arborescence de chacun des USER dans un fichier texte qui leur est unique.

    Exemple du résultat souhaité : USER1.TXT
    Name: USER1
    Dossier > z:\partage\
    Dossier > z:\partage\User1\
    Dossier > z:\partage\User1\Mes-fichiers\
    Fichier > z:\partage\User1\Mes-fichiers\file.iso ----500Mo
    Fichier > z:\partage\User1\Mes-fichiers\file2.iso ----500Mo
    Fichier > z:\partage\User1\Mes-fichiers\file3.iso ----500Mo
    Total > z:\partage\User1\ -----1500Mo

    Nouveau fichier texte : USER2.TXT
    Dossier > z:\partage\
    Dossier > z:\partage\User2\
    Dossier > z:\partage\User2\Mes-fichiers\
    Fichier > z:\partage\User2\Mes-fichiers\texte.txt ----200Mo
    Fichier > z:\partage\User2\Mes-fichiers\texte2.txt ----200Mo
    Fichier > z:\partage\User2\Mes-fichiers\texte3.txt ----200Mo
    Total > z:\partage\User2\ -----600Mo

    Je vois bien une commande personnalisée de FINDSTD. J'ai bien conscience que celle peut générer un grand nombre de fichiers texte au final mais cela me permettra de tirer les oreilles de certains blague à part, je parle même pas du gain de temps !!


    Cela vous semble t'il possible ?

    Bien à vous,
    MJ

  9. #9
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : janvier 2013
    Messages : 1 478
    Points : 3 880
    Points
    3 880
    Par défaut
    Donc en résumé :

    On a une liste d'utilisateur prédefinie (user1 user2 user3 user4 user5 user6 ...)

    On va rechercher l'arborescence relative ä chacun d'entre eux, dans le fichier géneré par karen's tool kit et on la copie dans un fichier portant le nom de l'utilisateur.

    Si c'est cela! C'est faisable facilement avec la commande findstr

    Dans le fichier generé par Karen's, Tu boucle un FINDSTR sur ta liste d'utilisateur (préalablement définie) et tu redirige la sortie vers un fichier qui porte le nom de l'utilisateur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @echo off
    
    :::Ici tu définies les utilisateurs
    
    set Utilisateurs=user1 user2 user3
    
    :::la boucle dans fichier.txt = le fichier géneré par Karen's
    
    for %%a in (%utilisateurs%) do (findstr "%%a" fichier.txt > %%a.txt)
    Maintenant tu peux rajouter tout les tests et tris spécifiques a ton application et/ou récuperer la mémoire disque utilisée par chaque utilisateur dans un autre fichier, envoyer automatiquement un mail d'avertissement à l'utilisateur qui dépasse le seuil permis etc..

    Cela résoud t'il ton problème ?
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  10. #10
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    octobre 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2012
    Messages : 35
    Points : 11
    Points
    11
    Par défaut Presque... SUPER !!
    Bonjour Sacha,
    Merci pour ton retour, reste plus qu'à l'appliquer selon mon besoin exact
    Chapeau bas à toi l'Artiste, je suis bleufé par ton savoir !
    En revanche lorsque le script (cité ci-dessus) passe dans mon fichier texte avec toute l'arborescence , il dissocit bien les repertoires et sous repertoires de chaque USER mais pas des fichiers alors qu'ils sont bien présents dans le listing texte que l'application Karen's Power Tools Directory m'a généré..
    As-tu une idée à ce sujet ?

    Peux-tu egalement me donner un avis sur cette macro ?

    Sub Octets()
    Dim s As Range
    Dim v As Range
    Set s = Selection
    If s.Columns.Count > 1 Then Exit Sub
    For Each v In s
    v = Replace(v, ".", ",") ' Peut-être?
    Select Case Right(v, 1)
    Case "K": v(1, 2) = Mid(v, 1, Len(v) - 1) * 1024
    Case "M": v(1, 2) = Mid(v, 1, Len(v) - 1) * 1024 ^ 2
    Case "G": v(1, 2) = Mid(v, 1, Len(v) - 1) * 1024 ^ 3
    Case "T": v(1, 2) = Mid(v, 1, Len(v) - 1) * 1024 ^ 4
    End Select
    Next v
    End Sub


    Elle est sencée etre appliquée sur la colonne "taille" afin de convertir les Octets en mega-octets.. mais lorsque je l'applique rien ne se passe

    Bien à vous,
    MJ

  11. #11
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : janvier 2013
    Messages : 1 478
    Points : 3 880
    Points
    3 880
    Par défaut
    Envoie moi un bout (seulement 1 utilisateur) du fichier génerer par Karen´s
    avec la branche relative aux fichiers manquants. Pour voir pourquoi il ne sont pas traitées.

    Pour ta Macro aucune idée.

    si tu veux une fonction batch qui fait-ça, c'est faisable facilement.

    Amicalement
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  12. #12
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : janvier 2013
    Messages : 1 478
    Points : 3 880
    Points
    3 880
    Par défaut
    On peut également utiliser la commande DIR pour créer l'arborescence complète
    d'un disque.

    et avec un pipe FIND on fait directement le tri que l'on envoie dans SORTIE.TXT

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dir c:\ /aa /b /s | find "user" > sortie.txt

    Amicalement
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

Discussions similaires

  1. Réponses: 26
    Dernier message: 19/08/2015, 17h38
  2. Afficher simplement une arborescence disque
    Par Franck.H dans le forum Contribuez
    Réponses: 2
    Dernier message: 03/12/2010, 21h08
  3. envoyer un mail avc PJ via un script batch
    Par nezha_ma dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 25/06/2010, 17h06
  4. Créer une clé de registre dans un script batch
    Par persam dans le forum Windows XP
    Réponses: 2
    Dernier message: 27/07/2007, 12h32
  5. Créer une arborescence disque
    Par domiq44 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 06/10/2006, 14h36

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