Je veux récupérer une ligne entière d'un fichier espaces compris
TABTOB81
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
jogadyl Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
jogadyl Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis entrain de programmer un batch qui récupére les lignes d'un fichier texte (ligne par ligne). il affiche une valeur dans une position donnée :
Le programme :
Mon programme marche, mais il ne récupère pas une ligne entière. Il s'arrête là où il trouve un espace.
le fichier texte contient les lignes suivantes :
050019828581300000163771 0531OM. M**** M****RTIN
050024337583900900576259 0761OMMEM**** M****E XXXXX
080021046786900000210436 0761OM. Mxxx Myyy
050027651388100102386081 0851OMMzzzzz M*** kkkkkk
080506679281200000753251 0741OMllllll M**** J*** hhhhh
les valeurs récupérées par ligne :
050019828581300000163771
050024337583900900576259
080021046786900000210436
080506679281200000753251
Merci d'avance pour votre aide
Noms supprimés par la Modération CCM
Je suis entrain de programmer un batch qui récupére les lignes d'un fichier texte (ligne par ligne). il affiche une valeur dans une position donnée :
Le programme :
@echo off for /F "delims=" %%R in (MonFichier) do ( call :cmd %%R) pause :cmd if "%1" == "" exit SET var=%1 echo %var:~28,4% echo %1
Mon programme marche, mais il ne récupère pas une ligne entière. Il s'arrête là où il trouve un espace.
le fichier texte contient les lignes suivantes :
050019828581300000163771 0531OM. M**** M****RTIN
050024337583900900576259 0761OMMEM**** M****E XXXXX
080021046786900000210436 0761OM. Mxxx Myyy
050027651388100102386081 0851OMMzzzzz M*** kkkkkk
080506679281200000753251 0741OMllllll M**** J*** hhhhh
les valeurs récupérées par ligne :
050019828581300000163771
050024337583900900576259
080021046786900000210436
080506679281200000753251
Merci d'avance pour votre aide
Noms supprimés par la Modération CCM
A voir également:
- Je veux récupérer une ligne entière d'un fichier espaces compris
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Espaces insécables - Guide
3 réponses
il faut ajouter la ligne suivante au début du programme :
@Echo off & Setlocal enableextensions enabledelayedexpansion
@Echo off & Setlocal enableextensions enabledelayedexpansion
Le problème c'est le %1 dans ton sous-programme.
Comme ta ligne de commande comporte des blancs, %1 ne représente que le premier mot.
Si tu veux récupérer la ligne entière dans :cmd, il faut rechercher tous les paramètres.
Plutôt que d'utiliser la suite %1 %2 %3 %4 etc.. tu peux utiliser la variable %* qui prend toute la ligne
Ton programme devient
Note que le premier test sur %1 est correct. Tu sortiras de la procedure s'il n'y a pas de paramètre, même si la ligne de ton fichier comporte des blancs.
Pour ce programme, la ligne
Setlocal enableextensions enabledelayedexpansion
ne sert à rien. (Mais ça ne peux pas faire de mal)
Comme ta ligne de commande comporte des blancs, %1 ne représente que le premier mot.
Si tu veux récupérer la ligne entière dans :cmd, il faut rechercher tous les paramètres.
Plutôt que d'utiliser la suite %1 %2 %3 %4 etc.. tu peux utiliser la variable %* qui prend toute la ligne
Ton programme devient
@echo off
for /F "delims=" %%R in (MonFichier) do ( call :cmd %%R)
pause
goto :eof
:cmd
if "%1" == "" exit
SET var=%*
echo %var:~28,4%
echo %*
Note que le premier test sur %1 est correct. Tu sortiras de la procedure s'il n'y a pas de paramètre, même si la ligne de ton fichier comporte des blancs.
Pour ce programme, la ligne
Setlocal enableextensions enabledelayedexpansion
ne sert à rien. (Mais ça ne peux pas faire de mal)