Batch DOS findstr et FOR

Fermé
sleli - 5 nov. 2010 à 19:30
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 - 8 nov. 2010 à 11:57
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


A voir également:

3 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
6 nov. 2010 à 13:26
hello
utilser des ! à la place des % dans la boucle
echo .!TOTO:~13,4! 
0
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
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
8 nov. 2010 à 11:57
la réponse a été donnée
0