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 :

Recherche avec .bat


Sujet :

Scripts/Batch

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 141
    Par défaut Recherche avec .bat
    Bonjour à tous,

    J'ai plusieurs répertoires sur le réseau nommé tous ZXFILES_REPORT.
    Tous ces répertoires sont dans des répertoires différents :

    \\serveur1\partage\Répertoire1\ZXFILES_REPORT
    \\serveur1\partage\Répertoire2\ZXFILES_REPORT
    \\serveur1\partage\Répertoire3\ZXFILES_REPORT
    \\serveur1\partage\Répertoire4\ZXFILES_REPORT
    ......

    Je cherche une solution pour remonter par une commande l'emplacement de chacun de ces répertoires ZXFILES_REPORT

    Existe t'il une solution ?

  2. #2
    Expert confirmé
    Avatar de shawn12
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Avril 2006
    Messages
    3 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2006
    Messages : 3 368
    Par défaut
    Peut être en utilisant la commande find sur ce que renvoie la commande dir /s (affiche les fichiers dans tous les sous-répertoires) ?

    Pour de l'aide :

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 141
    Par défaut
    Salut,

    Merci pour ta réponse.
    En fait, non, le répertoire ZXFILES_REPORT n'est pas forcement en bas de l'arborescence.

    Dans ton batch, où indiquer l'emplacement du répertoire à scanner.

  4. #4
    Membre Expert
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Par défaut
    Citation Envoyé par mattwarend Voir le message
    Salut,
    En fait,le répertoire ZXFILES_REPORT n'est pas forcement en bas de l'arborescence
    bonsoir,

    alors,

    c'est pas la meilleur solution mais bon, ça marche..
    ==> à mettre dans le repertoire cible


    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
    @echo off
    
    setlocal ENABLEdelayedexpansion
    set fd=ZXFILES_REPORT
    
    dir /ad /b /s "%~dp0" >dir.txt
    
    For /f "delims=_" %%a In ('type dir.txt ^|find "%fd%"') Do (
    Set var=%%a
    Set var=!var:~0,-7!
    Echo !var!
    )
    If exist dir.txt del /q dir.txt
    
    endlocal

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 141
    Par défaut
    Citation Envoyé par I'm_HERE Voir le message
    bonsoir,

    alors,

    c'est pas la meilleur solution mais bon, ça marche..
    ==> à mettre dans le repertoire cible


    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
    @echo off
    
    setlocal ENABLEdelayedexpansion
    set fd=ZXFILES_REPORT
    
    dir /ad /b /s "%~dp0" >dir.txt
    
    For /f "delims=_" %%a In ('type dir.txt ^|find "%fd%"') Do (
    Set var=%%a
    Set var=!var:~0,-7!
    Echo !var!
    )
    If exist dir.txt del /q dir.txt
    
    endlocal

    Salut,

    Euh... Marche pas chez moi.
    Pour tester, j'ai positionné plusieurs répertoire nommé ZXFILES_REPORT sous mon C:
    J'ai mis le .bat à la racine de C: et j'ai lancé.
    La fenêtre s'ouvre mais ne génère aucun rapport.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 141
    Par défaut
    Merci pour votre réponse.

    Sous C:\, le bat semble fonctionner.
    J'ai bien la fenêtre DOS qui s'affiche avec la liste des répertoires conteneurs dans la fenêtre DOS.
    Mais pas de rapport dans dir.txt, le fichier n'est pas généré.

    En revanche sur la ressource du serveur de fichier P:\
    La fenêtre se lance, j'ai un rapport dir.txt qui apparaît mais avec une seule ligne dedans, un répertoire où se trouve ZXFILES_REPORT.
    Je l'ai laissé tourner un moment, mais il ne me trouve pas d'autre ZXFILES_REPORT (pourtant, il y en a)

    En fait, ce que j'aurais peut-être dû vous préciser avant, tout les répertoires ZXFILES_REPORT que je cherche sont au niveau 2. Je m'explique :

    H:\Rep1\ZXFILES_REPORT
    H:\Rep2\ZXFILES_REPORT
    H:\Rep3\ZXFILES_REPORT
    ...

    Dans le fichier dir.txt, est-il possible d'avoir le chemin complet, cad, H:\Rep1\ZXFILES_REPORT ?

  7. #7
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 38
    Par défaut
    J4ai cherché dans une autre voie, j'ai trouvé ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @echo off
    
    Set PathCible="Chemin du repertoire a scanner"
    
    if exist "%temp%\list-tri.txt" del "%temp%\list-tri.txt
    dir /a:d /s /b %PathCible%|sort /r >%temp%\list-tri.txt 
    (for /f "delims=" %%a in ('type "%temp%\list-tri.txt" ^|findstr /i /r "ZXFILES_REPORT"') do echo "%%a" )> %PathCible%\liste.txt
    del "%temp%\list-tri.txt" 
    pause
    Conseil d'utilisation :
    Set PathCible="Chemin du repertoire a scanner"

    Tu mets le chemin du repertoire a scanner, si tu veux que le bat scan par défaut le répertoire ou se trouve le .bat remplace par : .\.

    LE fichier resultat se retrouve dans la racine de l'arborescence scannée

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 141
    Par défaut
    Citation Envoyé par Delivrance Voir le message
    J4ai cherché dans une autre voie, j'ai trouvé ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @echo off
    
    Set PathCible="Chemin du repertoire a scanner"
    
    if exist "%temp%\list-tri.txt" del "%temp%\list-tri.txt
    dir /a:d /s /b %PathCible%|sort /r >%temp%\list-tri.txt 
    (for /f "delims=" %%a in ('type "%temp%\list-tri.txt" ^|findstr /i /r "ZXFILES_REPORT"') do echo "%%a" )> %PathCible%\liste.txt
    del "%temp%\list-tri.txt" 
    pause
    Conseil d'utilisation :
    Set PathCible="Chemin du repertoire a scanner"

    Tu mets le chemin du repertoire a scanner, si tu veux que le bat scan par défaut le répertoire ou se trouve le .bat remplace par : .\.

    LE fichier resultat se retrouve dans la racine de l'arborescence scannée
    Merci pour vos réponses à tous les deux.
    Ca fonctionne maintenant mais comment limiter la recherche aux répertoires de Niveau 2 car elle se lance dans tous les répertoires alors que les répertoires ZXFILES_REPORT se trouvent tjrs au Niveau 2 (durée de la dernière recherche 8 heures...)
    Je m'explique :
    H:\Niveau1\Niveau2
    H:\Rep1\ZXFILES_REPORT


    De plus, j'ai trouvé les commandes :
    echo O|cacls /T /G Administrators:F
    echo O|cacls /T /E /G Users:R

    Et je souhaiterais pouvoir passer à la foulé ces deux commandes sur les répertoires listés.
    Comment modifier le code plus haute pour que les commandes soient lancées dans la foulée.

    Merci d'avance.
    @+

Discussions similaires

  1. Recherche avec Locate option lopartialKey
    Par jeje.r dans le forum Bases de données
    Réponses: 4
    Dernier message: 21/12/2022, 10h56
  2. Recherche avec sed insensible à la casse
    Par _Mac_ dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 12/10/2005, 15h42
  3. Recherche avec des accents!?
    Par mona dans le forum Access
    Réponses: 3
    Dernier message: 14/06/2005, 20h36
  4. recherche avec findnearest
    Par souad26 dans le forum Bases de données
    Réponses: 2
    Dernier message: 18/11/2004, 20h58
  5. Enlever la surbrillance lors d'une recherche avec vi
    Par sekiryou dans le forum Applications et environnements graphiques
    Réponses: 8
    Dernier message: 04/03/2004, 13h55

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