Parcourir un fichier et chaines vides [batch DOS] - Shell/Batch - Programmation
Marsh Posté le 19-11-2004 à 12:44:36
si tu fais
FOR /F "tokens=1,2*" %%i in (liste.txt) do echo %%i %%j |
tu vas lister les valeurs, par contre comme le délimitateurs est un espace, tu auras des pb avec les retours à la ligne
l'idéal serait de modifier dans ta liste les délimitateurs en les remplacant par des virgules par exemples
le shell dos ca pu
Marsh Posté le 19-11-2004 à 14:08:27
sinon je te propose de tester ce petit code ca dervait t'aider
@echo off
cls
for /f "tokens=1,2 delims= " %%A in (c:\site1.txt) do (
echo %%A%
echo %%B% | FIND "echo"
if errorlevel 1 goto suite
:suite
set nom_trouve="%%a%"
)
pause
Marsh Posté le 19-11-2004 à 15:32:22
couak a écrit : si tu fais
|
Mon problème se situe pas au niveau du for, mais au niveau de la détection des valeurs vides...
Je veux juste retourner le premier nom dont la valeur est vide
Marsh Posté le 19-11-2004 à 15:41:50
Tetedeiench a écrit : Mon problème se situe pas au niveau du for, mais au niveau de la détection des valeurs vides... |
tu peux tester une valeur vide en la comparant avec "" mais le problème avec le FOR c'est que le retour à la ligne, les espaces et les tab sont considérés comme les délimiteurs
Marsh Posté le 19-11-2004 à 15:48:26
couak a écrit : tu peux tester une valeur vide en la comparant avec "" mais le problème avec le FOR c'est que le retour à la ligne, les espaces et les tab sont considérés comme les délimiteurs |
Je viens de réussir c'était tout bête... c'est un peu grâce à toi
Le code en question :
|
Marche parfaitement. J'ai mis le ; comme delimiteur pour avoir un truc au format csv, mais globalement, c'était pas necessaire.
Marsh Posté le 19-11-2004 à 16:45:11
Tetedeiench a écrit : Je viens de réussir c'était tout bête... c'est un peu grâce à toi
|
c'était bien ce que je disais : il fallait un délimiteur différent de l'espace sinon c'était ca devenait un peu plus touchy
je le répète encore une fois : le dos shell ca pue
Marsh Posté le 19-11-2004 à 08:24:19
J'ai un petit problème coté batch, et je suis pas très fort la dedans, donc au secours
J'ai un fichier de ce type 1 :
Nom1 Valeur1
Nom2 Valeur2
Nom3 Valeur3
...
Je dois faire un batch qui renvoie le premier nom trouvé sans valeur
Et la, au secours Je ne sais pas comment exprimer la chaine vide sous windows, et bon... comment renvoyer juste la première valeur ?
Je pensais faire un truc style :
for /f "tokens=1,2 delims= " %%A in ('type site1.txt') do "Si variable "nom_trouve" est pas vide alors si la valeur est vide alors assigner le nom à la variabe "nom_trouve"
Mais euh... autant le début ca va, autant savoir que %%A contient le nom et %%B la valeur ca va, autant exprimer le reste après le do... je sais pas. Comment on modélise la chaine vide dans ce cas ?
Si quelqu'un peut m'aider...
Merci !