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 :

récupération répertoire


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2006
    Messages : 23
    Par défaut récupération répertoire
    Bonjour,
    dans un batch DOS, je voudrais récupérer en variable le nom du répertoire contenant un fichier ...

    Exemple :
    Dans l'arborescence suivante :
    C:\
    TOTO
    001
    fichier.txt
    002
    fichier.txt
    003
    fichier.txt
    004

    a partir d'une boucle 'for /r C:\TOTO %%X in (fichier.txt) do CALL PROC.CMD répertoire'

    PROC.CMD contenant une série de commande a effectuer dans le répertoire en question
    Je précise que je ne veux QUE le répertoire sans \, et pas le chemin complet
    ex : %ZREP% = 001 %ZREP% = 002, etc ...

    Merci de votre aide

  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 abaroux et bienvenu,

    la mise en page ayant surement fait sauter tes tabulations pourrez tu précisez ton arborescence.
    Es ce bien sous cette forme ? :
    C:\TOTO\001\fichier.txt
    C:\TOTO\002\fichier.txt
    C:\TOTO\003\fichier.txt

    es ce bien uniquement le nom du dossier parent au fichier que tu veux obtenir?
    es ce bien pertinent?
    s'il existe :
    C:\TOTO\001\fichier.txt
    C:\TOTO\001\001\fichier.txt
    ton PROC.CMD ne saura pas faire de différence entre ces deux dossiers parent '001'.

  3. #3
    Membre averti
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2006
    Messages : 23
    Par défaut
    Bonjour,
    non , c'est bien ça
    C:\TOTO\001\fichier.txt
    C:\TOTO\002\fichier.txt
    C:\TOTO\003\fichier.txt

    Et il ne peut pas exister de C:\TOTO\001\001\fichier.txt
    Les répertoires et fichiers sont créés par un programme qui tourne depuis des années.

    et oui, c'est bien le nom du répertoire parent du fichier que je veux récupérer, a savoir 001 ou 002 ou 003 etc ...

    Merci de votre aide

  4. #4
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @echo off
    pushd .
    for /f %%i in ('dir /b /s c:\toto\fichier.txt') do (
    cd %%~dpi
    for %%* in (.) do echo %%~n*
    )
    popd
    je te laisse le soin d'affecter le résultat dans la variable.



    ps: la cible ne s'aurait être une racine.

  5. #5
    Membre averti
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2006
    Messages : 23
    Par défaut
    Un grand merci !!!
    Ca marche nickel !

  6. #6
    Membre averti
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2006
    Messages : 23
    Par défaut
    ... Par contre en allant plus loin dans le batch, je m'aperçois qu'il y a un truc qui bloque ...
    Je vais tout expliquer ca ira plus vite

    Ces répertoires (001, 002, 003, etc ...) sont assignés a des personnes
    Chaque rep = 1 personne
    je teste la taille d'un fichier dans ces rep pour savoir si il dépasse 50Mo, et si il dépasse, je désire envoyer un mail a la personne en charge de ce rep ...

    Ca donne a peu près ça :

    1 batch :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ---------------------------------------------------
    @echo off
    Z:
    pushd .
    for /f %%i in ('dir /b /s Z:\DOC_001.zip') do (
    	cd %%~dpi
    	for %%* in (.) DO CALL C:\UTIL\TESTSIZE3.CMD %%i 50000000 %%~n*
    	)
    popd
    ---------------------------------------------------
    2eme batch : (TESTSIZE3.CMD)
    Code : 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
    ---------------------------------------------------
    SET FIC=%1
    SET MAX=%2
    SET REP=%3
    SET MSG=C:\UTIL\MSG_SIZE.TXT
    SET SIZ=%~z1
    SET 002=utilisateur1@mondomain.com
    SET 003=utilisateur2@mondomain.com
    SET 004=utilisateur2@mondomain.com
    ...
    
    IF %SIZ% GTR %MAX% (
    	ECHO Bonjour,>%MSG%
    	ECHO La taille du fichier %FIC% depasse les 50Mo !>>%MSG%
    	ECHO 	%FIC%	%SIZ%>>%MSG%
    	ECHO Merci de vous synchroniser rapidement.>>%MSG%
    	ECHO %DATE% %TIME%>>%MSG%
    	... ligne de commande d'envoi de mail ...
    )
    ---------------------------------------------------
    Et donc je dois recuperer l'adresse mail assossiée au nom du répertoire, et là je ne sais pas comment faire
    en fait ça doit donner quelque chose comme ça :

    ENVOIMAIL serveurmail addrfrom addreto %MSG%
    ou addreto est l'adresse de destinataire ...

    je ne sais pas si je suis clair ...

    Merci

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/02/2007, 14h22
  2. [MySQL] Récupération signature md5 d'un répertoire
    Par okuri dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 01/02/2007, 09h25
  3. Récupération extension fichier dans un répertoire
    Par legomaniac071 dans le forum Langage
    Réponses: 25
    Dernier message: 27/11/2006, 20h50
  4. [ClassLoader]Récupération du répertoire , ou ajout ?
    Par elitost dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 18/10/2005, 15h25
  5. [débutant][JFileChooser] Sélection et récupération d'un répertoire
    Par pingoui dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 24/01/2005, 17h35

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