Compter une caractère spécifique [BATCH]

Résolu
Bonjour,

voila j'ai une ligne:

M:\dossier\hello\test

j'aimerai compter le nombre de "\" et y ajouter 2.

en fait j'ai besoin de cette valeur pr le tokens d'un for qui traite les fichiers de ce dossier par "\". Plus clairement il me faut le 5ème élément de l'URL dans cette exemple.

M:\dossier\hello\test
1 \ 2 \ 3 \ 4 \ 5

Voila mon code pour l'instant:

set localisation= M:\dossier\hello\test
set nbreDossier=5

dir /b /s %location% > chemin.txt

for /f "tokens=%nbreDossier% delims=\" %%i in (chemin.txt) do (
...
)

En fait cela me servirai a rendre mon script dynamique... j'aurai alr un :

set /p localisation=entrer l'emplacement

et la valeur du tokens se calculera toute seul
Configuration: Windows XP
Firefox 3.5.2

6 réponses

  1. dir /b /s %location% > chemin.txt
    for /f "tokens=* delims=\" %%a in (chemin.txt) do (
    pause
    echo %%~na > format.txt
    pause

    je n'atteins même pas le premier pause -____-
    1. Contributeur
      il manque ), utiliser >> et on peut supprimer delims=\:
      Dir /b /s %location% > chemin.txt
      for /f "tokens=*" %%a in (chemin.txt) do (
      pause
      echo %%~na >> format.txt
      pause
      )
      1. Waa je viens de me rendre compte d'un truc, ton %%~na me prend le dernier élement, donc si dans mon chemin.txt j'ai:

        M:\hello\h1
        M:\hello\h2
        M:\hello\h3
        M:\hello\h4

        %%~na sera toujours égal à h4 -__- dans ma boucle for.... pas cool tu aurai pas la soluce pour que j'ai au premier passage h1, puis h2,... et pas toujours h4 ?
      2. @VinceEuh non en fait, sry guy c'est bon ton truc marche du tonnere, yavai eu une modif non prévu.... mais tout est bon now thx encore et sry

        ++

        Have a good life
      3. Contributeur
        @Vincec'est pour ça qu'il faut
        echo %%~na >> format.txt
        et non pas
        echo %%~na > format.txt
    2. Euh... en fait je vais paraitre un peu con la mais.... disons que... ta soluce marche depuis le début... c'est juste que j'ai écrit tockens -___- enfin bref resolu now thx so so much

      ++

      Vince
      1. Contributeur
        hello
        si tu veux juste le dernier élément, tu peux utiliser %~na:
        $ type zz
        1\2\3\4\5

        $ for /f "delims=\ tokens=*" %a in (zz) do @echo %~na
        5