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 :

Chercher le nom


Sujet :

Scripts/Batch

  1. #1
    Débutant
    Inscrit en
    Juin 2007
    Messages
    453
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 453
    Points : 97
    Points
    97
    Par défaut Chercher le nom
    Bonjour à tous,

    Je code un script batch pour dispatcher une liste des fichiers dans différents dossiers. Le dispatching de ces fichiers dépend du nom de chaque fichier.

    Pour cela, je cherche comment faire pour identifier si le nom de fichier contient une telle chaine ou non.

    En gros je dois faire une boucle qui liste l'ensemble des fichiers dans le dossier contenant tout les fichiers

    Par exemple!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for /r %%i in (%ADR_Folder%\*.txt) do ()
    ET après selon le nom de chaque fichier, faire le dispatching vers le dossier approprié.

    Pour cela, je ne trouve pas comment identifier si le nom d'un fichier contient une chaine de caractère X ou non ? En effet, selon cette comparaison je ferai le dispatching et je passe au fichier suivante.

    Toute information sera le bien venue et merci beaucoup d'avance

  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 768
    Points
    3 768
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    set "$cherche=toto"
    
    
    for %%i in (*.bat) do (
       echo %%~ni | findstr /i %$cherche% && (echo [%%~ni] contient [%$cherche%]) || (echo [%%~ni] ne contient pas [%$cherche%]))
    attention for /r va boucler sur des repertoire et non sur des fichiers.

    Pour simplifier on peu s'interesser uniquement au résultat positif :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    set "$cherche=toto"
    for /f "delims=" %%i in ('dir /a-d /b *.txt ^| findstr %$cherche%') do echo [%%~ni] contient [%$cherche%])
    voilà tu as 2 solutions

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

  3. #3
    Débutant
    Inscrit en
    Juin 2007
    Messages
    453
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 453
    Points : 97
    Points
    97
    Par défaut
    Je vous remercie pour votre réponse. Mais quand j'ai testé votre commande j'ai eu le message d'erreur suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    findstr n'est pas reconnu en tant commande interne !!
    En plus, je dois chercher les noms des fichiers dans un répertoire selon leur début. ç-a-d les fichiers qui commencent par des sous chaines de cractètres particulière et les faire après les déplacer aux dossiers ayant le nom de ces initiaux. Par exemple chercher les fichiers commençant par "Tab_test_Val" et les faire déplacer vers un dossier "C:/docs/files/Tab_test_Val/".

    J'ai testé le deux instructions mais j'ai toujours des soucis.. J'ai même essayé de changer plusieurs points mais malheureusement sans résultat

    Merci beaucoup encore une fois pour votre retour

  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 768
    Points
    3 768
    Par défaut
    salut,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @echo off
    
    set "$cherche=Tab_test_Val"
    for /f "delims=" %%i in ('dir /a-d /b *.bat ^| find /i "%$cherche%"') do echo copy "%%~ni" "C:/docs/files/%$cherche%")
    j'ai mis un echo devant le copy pour que tu puisses contrôler la sortie

    si ça te semble correct retire le ECHO.


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

Discussions similaires

  1. [Batch] Chercher les noms de répertoires contenant un certain fichier
    Par julkillu dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 04/04/2012, 10h00
  2. chercher le nom d'une fonction
    Par NELLLY dans le forum MATLAB
    Réponses: 2
    Dernier message: 11/04/2009, 21h26
  3. Réponses: 1
    Dernier message: 24/01/2008, 17h30
  4. chercher le nom dll
    Par specialhaha dans le forum C++
    Réponses: 6
    Dernier message: 23/01/2008, 13h04
  5. [Excel] Chercher un nom de cellule dans des formules
    Par conconbrr dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/07/2006, 17h43

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