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 :

Compter le nombre de niveau dans une arborescence [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 18
    Par défaut Compter le nombre de niveau dans une arborescence
    Bonjour à tous,

    J'ai encore un dernier problème sur lequel je coince... Je dois récupérer le nom du niveau d'une arborescence rentré par l'utilisateur. Je pensais donc compter le nombre d'antislash pour récupérer la dernière partie avec un tokens.

    Hors, je n'ai vraiment pas la moindre idée de comment compter le nombre d'un caractère spécifique dans une chaine de caractère. J'ai cherché sans fin toute la mâtiné, sans rien trouvé... A croire que personne n'a eu ce problème avant moi T.T.

    Voici ce que j'ai déjà tenté de faire, mais bien évidement, ça ne m'avance pas beaucoup...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for /f "delims=\" %%u in ("%DossierPhotos%") do set /a nb=!nb!+1
    	echo %nb%
    	pause
    Si vous avez une idée ou un conseil ^_^.

  2. #2
    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
    salut,

    Citation Envoyé par Guiiil Voir le message
    A croire que personne n'a eu ce problème avant moi T.T.
    voir par ici, ici aussi et encore là

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 18
    Par défaut
    Salut à toi, et merci pour ta réponse.

    Mais aucun des trois ne me correspond ^^". Ou alors j'ai loupé un passage important.

    En fait j'ai toujours mon script qui renomme les fichiers selon le nom du dossier et qui les déplaces dans un dossier à part. Jusqu'à maintenant tout fonctionnait... Hors ! On m'a demandé de donner la possibilité de rentrer le nom du chemin dans l'invité de commande.

    Ce qui fait que je ne peux plus soustraire de la chaine la partie qui m'intéressait, puisque je ne la connais plus.

    Par exemple, l'utilisatrice rentrera C:\Users\ChauffeMarcel\Documents\CMD, et le programme récupèrera les fichiers dans C:\Users\ChauffeMarcel\Documents\CMD\DossierUn, C:\Users\ChauffeMarcel\Documents\CMD\DossierDeux...

    Le truc, c'est que %~nx1 me sort le nom du fichier. Donc j'ai le droit à C:\Users\ChauffeMarcel\Documents\CMD\DossierUn\DossierUn1.jpg. Mais ce que je souhaite, c'est récupérer le nom de son dossier, donc C:\Users\ChauffeMarcel\Documents\CMD\DossierUn\DossierUn1.jpg.

    Voilà pourquoi je souhaite connaitre le nombre de niveau, comme ça je n'ai qu'à récupérer la partie qui m'intéresse grâce à tokens en incrémentant une fois.

    En te remerciant pour ton aide ^_^ (et celle de ceux qui passeront).

  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
    salut,

    tu peux t'inspirer de ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    set dossier=chemin du rep
    
    for /d %%a in ("%dossier%\*") do echo %%a

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 18
    Par défaut
    Mmmh... Dommage... Je pense que ça n'ira pas (pourtant j'y ai cru).
    Le problème de la méthode que tu m'as donné et qu'elle implique que je ne fasse que le tour des dossiers... Je m'y attelle depuis tout à l'heure, mais ce n'est guère concluant, étant donné que le for commence par vérifier tous les dossiers avant les fichiers. Du coup, impossible de savoir quand le script change de dossier. Même si je peux récupérer le nom des dossiers, si je ne sais pas quand les utiliser pour renommer les fichiers...

    N'y a t-il vraiment aucune moyen de compter les antislashs (ou autre) dans une chaine ?
    Comme ça, ça me permettrait de ne prendre que la partie de la chaine qui m'intéresse...

  6. #6
    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
    salut,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    set dossier=chemin du rep
    
    for /d %%a in ("%dossier%\*") do echo %%a

    ce script fait exactement ce que tu demandes:

    Par exemple, l'utilisatrice rentrera "C:\Users\ChauffeMarcel\Documents\CMD", et le programme récupèrera les fichiers dans "C:\Users\ChauffeMarcel\Documents\CMD\DossierUn", "C:\Users\ChauffeMarcel\Documents\CMD\DossierDeux"...

    donc il va récupérer tous les dossiers "enfants" du répertoire %dossier%
    ensuite tu peux récupérer tes fichiers dans ces répertoires

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

Discussions similaires

  1. Compter le nombre d'occurence dans une chaine
    Par shirya dans le forum Langage
    Réponses: 2
    Dernier message: 16/10/2007, 20h39
  2. Compter le nombre de fichiers dans une arborescence
    Par Olivier Regnier dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 22/08/2007, 10h29
  3. Réponses: 2
    Dernier message: 06/05/2007, 23h43
  4. Compter le nombre de colonne dans une table
    Par Coin dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/12/2006, 16h03
  5. Compter le nombre de caractere dans une chaine
    Par jmjmjm dans le forum C++
    Réponses: 13
    Dernier message: 19/11/2006, 11h37

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