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
Configuration: Windows XP
Firefox 3.0.13

20 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
    1. 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
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    en utilisant echo ?
    0
    1. dodi
       
      meme en utilisant echo...
      0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
  4. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
  7. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    Ce n'est pas un problème de fin de ligne (type <CR><LF>) dans ton fichier ?
    0
  8. 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
  9. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
  10. 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
  11. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    essaye en remplaçant "tokens=*" par "tokens=1"
    0
  12. 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
  13. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    rediriger dans un fichier :

    @echo off
    sqlplus login@base/password @monfichier.sql > resultat.txt
    0
  14. 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
  15. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
  16. 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
  17. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
  18. 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
  19. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    DOS n'aime pas les accents, essaye avec findstr
    findstr /v "992 ligne(s) s.lectionn.e(s)." < packages.LST > sortie.txt
    0
  20. dodi
     
    merci bcp tu m'as sauvé la vie :D tout marche a merveille :))
    0