Batch DOS findstr et FOR

sleli -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

incroyable, voici mon script:

---
@echo off
setlocal EnableDelayedExpansion

dir /S *.xml > xml_file.txt

for /F "tokens=4" %%i IN ('findstr /r "OSFC.*[0-9].xml" xml_file.txt') DO (
echo %%i
set "TOTO = %%i"
echo.%TOTO:~13,4%
)

:EOF

endlocal

---

le fichier xml_file.txt contient
05/11/2010 16:10 3ÿ305 OSFC-NSM-MVP-0001.xml
05/11/2010 16:10 4ÿ607 OSFC-NSM-MVP-0002.xml
05/11/2010 16:10 4ÿ739 ExempleForPTT2DOORSExport.xml
05/11/2010 16:10 5ÿ002 OSFC-NSM-MVP-xxxx.xml
05/11/2010 16:10 5ÿ262 OSFC-xRM-MVP-xxxx.xml
05/11/2010 16:10 6ÿ528 TemplateForParsing.xml

---

je voudrais obtenir:
OSFC-NSM-MVP-0001.xml
0001
OSFC-NSM-MVP-0002.xml
0002

et j'obtiens
OSFC-NSM-MVP-0001.xml
0002
OSFC-NSM-MVP-0002.xml
0002

Je n'y comprens rien !

Quelqu'un a une idée ?

Merci d'avance

Stephane

3 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    hello
    utilser des ! à la place des % dans la boucle
    echo .!TOTO:~13,4! 
    0
  2. sleli
     
    Quelques elements supplémentaire.
    En fait j'obtiens ceci a l'execution de la ligne 'echo.%TOTO:~13,4%' :
    ~13,4

    Dans mon premier post je pense que la variable TOTO devait avoir été initialisée lors une tentative précendante.
    0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    la réponse a été donnée
    0