exctraction de substring dans un for
Bonjour je me butte depuis quelques heure sur un problème sur XP (n'étant pas très habitué aux scripts dos)
Je cherche d'utiliser l'équivalent de %VAR:~0,10% dans le DO d'un FOR.
Mais sans succès....
le code ci-dessous n'a pas beaucoup d'intérêt, c'est juste un test pour comrpendre le fonctionnement avant de l'intégrer dans le script final.
il fait juste ceci:
- parcours des répertoires et sous répertoires du répertoire courant.
- définition de la variable len à 10 (sera remplacé par la suite par autre chose (c'est pour çà que çà reste dans la boucle)
- j'affiche la valeur de len
- je définis B : %%A
- j'affiche la valeur de B
- j'essaie d'extraire les "len" premiers caractères de B dans C
- j'affiche la valeur de C
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
@ECHO off
setlocal enabledelayedexpansion
FOR /F "usebackq delims==" %%A IN (` DIR /S /B /AD *.* `) do (
set /a len=10
echo len !len!
set B=%%A
echo B !B!
set C=!B:~0,!len!!
echo C !C!
) |
a l'exécution je recois ceci en retour
Code:
1 2 3 4 5 6 7 8 9 10
|
len 10
B C:\Documents and Settings\joell\Bureau\A
C len
len 10
B C:\Documents and Settings\joell\Bureau\A\A
C len
len 10
B C:\Documents and Settings\joell\Bureau\A\B
C len |
j'ai déjà essayé de remplacer set par set j'obtiens alors
Code:
1 2 3 4 5 6 7 8 9 10
|
len 10
B C:\Documents and Settings\joell\Bureau\A
C 10
len 10
B C:\Documents and Settings\joell\Bureau\A\A
C 10
len 10
B C:\Documents and Settings\joell\Bureau\A\B
C 10 |
quelqu'un aurait'il la solution ???
merci
joel