Deux premieres lettres d'une variable Batch

Résolu/Fermé
glob04d - 21 juin 2010 à 16:04
 glob04d - 21 juin 2010 à 16:43
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

Krysstof Messages postés 1483 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 23 août 2010 294
21 juin 2010 à 16:07
set toto=abcde

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

echo %toto:~1,3%
--> bcd
0
termgsi Messages postés 678 Date d'inscription vendredi 5 juin 2009 Statut Membre Dernière intervention 3 novembre 2016 39
21 juin 2010 à 16:11
Bonjour,

Essaye .2%donne
0
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
Krysstof Messages postés 1483 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 23 août 2010 294
21 juin 2010 à 16:31
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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