Deux premieres lettres d'une variable Batch

Résolu
glob04d -  
 glob04d -
Bonjour à tous,

Dans un script .bat, j'ai une variable %donne ( par exemple 12-24-25.jpg )
J'aimerais avoir les deux premières lettres de cette variable ( donc 12 ).

Si quelqu'un sait, je vous remercie

5 réponses

  1. Krysstof Messages postés 1659 Statut Membre 295
     
    set toto=abcde

    echo %toto:~0,2%
    --> ab

    echo %toto:~1,3%
    --> bcd
    0
  2. termgsi Messages postés 678 Date d'inscription   Statut Membre Dernière intervention   39
     
    Bonjour,

    Essaye .2%donne
    0
  3. glob04d
     
    j'ai essayé ce que vous me donnez, merci.. mais je n'arrive pas à le faire marché.

    En fait, c'est dans une boucle for :

    for /F %%C IN ('dir %source%\%%A\%%B /O:-D /B') do (

    echo "deuxpremiereslettrede%%C"
    )

    %%C contient le nom des fichiers jpg.
    merci
    0
  4. Krysstof Messages postés 1659 Statut Membre 295
     
    voila un bout de code :
    -------------
    @echo off

    if %1*==sub01* goto sub01

    for /F %%C IN ('dir %source% /O:-D /B') do call %0 sub01 %%C

    goto fin

    :sub01

    set toto=%2
    echo %toto:~0,2%

    :fin
    ----------
    c'est un batch récursif (qui s'appelle lui meme)

    dans "DO ()" les "SET" ne fonctionnent pas.

    Mais ton programme ne va pas fonctionner tel quel, %%A et %%B ne doivent pas être dans les parenthese de ta boucle for (sauf s'il y a un FOR encore avant)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. glob04d
     
    oui oui %%A et %%B sont dans un autre FOR.
    C'était juste un bout de code...

    Finalement, j'ai réussi à trouver seul :

    voici l'exemple si ça vous interesse

    setlocal EnableDelayedExpansion
    set file=
    .....
    for /F %%C IN ('dir %source%\%%A\%%B /O:-D /B') do (

    set file=%%C
    echo !file:~0,2!
    )

    je suis passé par une variable locale file.
    je ne sais pas si c'est la meilleure solution, mais en tout cas ça fonctionne
    0