Lecture d'un fichier sous DOS

Résolu
Dodi -  
 dodi -
Bonjour,

SVP j'ai besoin d'aide... je dois lire des elements dans fichier ligne par ligne, et je ne connais pas les commandes sous dos pour le faire.
pouvez vous m'aider?????

merci d'avance
A voir également:

20 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
la variable %x contient chaque ligne du fichier

$ type zz.txt
aaaaaa aaaa aa
bbbbbb bbb bbbb
ccc ccc ccc
ddd ddd ddd

$ for /f "tokens=*" %x in (zz.txt) do @echo ++%x++
++aaaaaa aaaa aa++
++bbbbbb bbb bbbb++
++ccc ccc ccc++
++ddd ddd ddd++
0
dodi
 
hello,

merci bcp pour ta réponse... et dsl pour le retard j'etais pas devant le poste ces derniers jours.
j'ai essayé ce que tu m'a proposé et ca marche bien, mais j'ai un ptit probleme. dans la boucle for je lance une commande et j'utilise la variale ou la ligne du fichier est stoké.. il me retourne a la ligne apres l'affichige de la variable...

jpub -u MEHDI/MEHDI -package=org.hps.exemple.jpublisher -plsqlpackage=PCRD_SGMB_
AVIS_OPERATIONS -plsqlfil
e=PCRD_SGMB_AVIS_OPERATIONS
_wrapper.sql,PCRD_SGMB_AVIS_OPERATIONS
_wrapper_drop.sql -s MEHDI.PCRD_SGMB_AVIS_OPERATIONS
:Personne
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
en utilisant echo ?
0
dodi
 
meme en utilisant echo...
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
echo ajoute une fin de ligne automatiquement. dans mon exemple, entre la fin de la ligne et le ++, il n'y a pas de saut
0
dodi
 
oui tout a fait, j'ai essayé ton exempl et ca marche parfaitement. je comprend pas pourquoi ca affiche des sauts quand j'ai executé une commande.

voivi le code:

for /f "tokens=*" %p in (list.LST) do jpub -u MEHDI/MEHDI -package=org.hps.exemple.jpublisher -plsqlpackage=%p -plsqlfile=%p_wrapper.sql,%p_wrapper_drop.sql -s MEHDI.%p:Personne

le fichier list.LST contient des nom de package sur chaque ligne..

merciiii
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
tu veux dire qu'après chaque %p il y a un saut de ligne ?
y a -t-il des espaces dans les noms ?
0
dodi
 
oui c'est bien ca
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Ce n'est pas un problème de fin de ligne (type <CR><LF>) dans ton fichier ?
0
dodi
 
c'est un fichier qui contien des noms de package. chaque nom dans une ligne:

PCRD_NDC_DISTRIBUTE_AMOUNT_1
PCRD_NDC_EMV_PARAM_1
PCRD_NDC_EMV_PARAM_2
PCRD_NDC_EMV_WN
PCRD_NDC_TERM_WATCH_MANAGEMENT
PCRD_NDC_WATCH_CONFIG
PCRD_P7_ACCOUNT_MNG
PCRD_P7_AUTH_AMOUNT_MNG
PCRD_P7_BALANCE_CONTROL
PCRD_P7_BUSINESS_DATE_MNG
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
bizarre, je n'ai pas de sauts

$ type zz.txt
PCRD_NDC_DISTRIBUTE_AMOUNT_1
PCRD_NDC_EMV_PARAM_1
PCRD_NDC_EMV_PARAM_2
PCRD_NDC_EMV_WN
PCRD_NDC_TERM_WATCH_MANAGEMENT
PCRD_NDC_WATCH_CONFIG
PCRD_P7_ACCOUNT_MNG
PCRD_P7_AUTH_AMOUNT_MNG
PCRD_P7_BALANCE_CONTROL
PCRD_P7_BUSINESS_DATE_MNG
$ type aa.bat
@echo off

for /f "tokens=*" %%p in (zz.txt) do (echo jpub -u MEHDI/MEHDI -package=org.hps.exemple.jpublisher -p
lsqlpackage=%%p -plsqlfile=%%p_wrapper.sql,%%p_wrapper_drop.sql -s MEHDI.%%p:Personne
echo ++++++++)

$ aa
jpub -u MEHDI/MEHDI -package=org.hps.exemple.jpublisher -plsqlpackage=PCRD_NDC_DISTRIBUTE_AMOUNT_1 -
plsqlfile=PCRD_NDC_DISTRIBUTE_AMOUNT_1_wrapper.sql,PCRD_NDC_DISTRIBUTE_AMOUNT_1_wrapper_drop.sql -s
MEHDI.PCRD_NDC_DISTRIBUTE_AMOUNT_1:Personne
++++++++
jpub -u MEHDI/MEHDI -package=org.hps.exemple.jpublisher -plsqlpackage=PCRD_NDC_EMV_PARAM_1 -plsqlfil
e=PCRD_NDC_EMV_PARAM_1_wrapper.sql,PCRD_NDC_EMV_PARAM_1_wrapper_drop.sql -s MEHDI.PCRD_NDC_EMV_PARAM
_1:Personne
++++++++
....
0
dodi
 
oui, apparement ya des espaces apres chaque nom de package. tu ne connais pas une fontion qui supprime les espaces?

merci pour ton aide :)
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
essaye en remplaçant "tokens=*" par "tokens=1"
0
dodi
 
ca marche :)))) merci infiniment

par contre j'ai une autre petite question...
si je veux creer un batch pour se connecter a sqlplus et lancer des requetes sql et faire un spool ds un fichier... comment puis je le faire ???

un truc du genre:

sqlplus login@base/password@monfichier.sql

sachant bien que monfichier.sql contient les requetes sql


merci d'avance
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
rediriger dans un fichier :

@echo off
sqlplus login@base/password @monfichier.sql > resultat.txt
0
dodi
 
merci bien ca marche! mais il m'enregistre dans le fichier en sortie le header et le footer... comment les enlever?

milles merci :)
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
essaye
-S
Sets silent mode which suppresses the display of the SQL*Plus banner, prompts, and echoing of commands.

sinon, il faut les extraire du fichier avec find ou findstr
0
dodi
 
j'ai trouvé une solution, je met le head en off et aussi le page... et je met un spool
mais il me reste la derniere ligne a enlever

tu connais la commande sous dos me permettant de supprimer les 2 dernieres lignes???

merci bcp pour ton aide
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
il n'y a pas de commande pour le faire directement, comme tail sur Unix,si le texte est toujours le même, on peut faire
find /v "texte" < entree.txt > sortie.txt
0
dodi
 
je met par exemple

find /v "992 ligne(s) sélectionnée(s)." < packages.LST > sortie.txt

le fichier généré ne change pas... il ne supprime pas la ligne pourtant le texte y est :s:s:s
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
DOS n'aime pas les accents, essaye avec findstr
findstr /v "992 ligne(s) s.lectionn.e(s)." < packages.LST > sortie.txt
0
dodi
 
merci bcp tu m'as sauvé la vie :D tout marche a merveille :))
0