Partage
  • Partager sur Facebook
  • Partager sur Twitter

Enlever les virgules d'un fichier txt en batch

Sujet résolu
    18 mars 2022 à 9:49:16

    Bonjour,

    Je cherche à enlever les virgules d'un fichier txt pour le renvoyer vers un autre.

    J'ai fais quelque chose à la 3ème ligne mais cela ne marche pas...

    Je n'y connais rien en batch alors assez compliqué.

    @echo off
    
    for /f "tokens=1,2,3,4,5 delims= " %%f in (listepanel/listePanel5.txt) do (
    
    Set listePanel5=%listePanel5:,=% do(
    
    echo %%f_%%g_%%h_%%i %%j >> Historique/historiquepanel5.txt
    	)
      )
      goto :eof
    



    • Partager sur Facebook
    • Partager sur Twitter
      18 mars 2022 à 10:16:12

      dans ton script, tu définis le séparateur comme étant un espace (delims= ), essais en mettant delims=,  (après c'est peut-être voulu)
      • Partager sur Facebook
      • Partager sur Twitter
        18 mars 2022 à 10:30:18

        umfred a écrit:

        dans ton script, tu définis le séparateur comme étant un espace (delims= ), essais en mettant delims=,  (après c'est peut-être voulu)


        Alors oui la est la complexité de la chose, c'est que le delims qui délimite l'espace est nécessaire, car j'ai besoin de la première ligne pour faire la fonction que je veux, et en plus de ça je dois supprimer les , c'est pour sa que j'ai du mal à faire les 2 dans le même fichier.

        Je te montre ce que sa donne dans mon fichier txt :

        16/03/2022_21:07_1,015,010_PANELCO5 -.vbm 

        13/02/2022_01:21_892,231,401,472_PANELCO5 -2022-02-12T210024.vbk 

        14/02/2022_21:07_3,868,012,544_PANELCO5 -2022-02-14T210027.vib 

        15/02/2022_21:07_2,575,364,096_PANELCO5 -2022-02-15T210026.vib 

        16/02/2022_21:07_3,002,265,600_PANELCO5 -2022-02-16T210025.vib 

        17/02/2022_21:07_3,836,567,552_PANELCO5 -2022-02-17T210022.vib 

        18/02/2022_21:07_2,518,093,824_PANELCO5 -2022-02-18T210028.vib 

        20/02/2022_02:36_892,211,191,808_PANELCO5 -2022-02-19T210023.vbk 

        21/02/2022_21:07_3,795,062,784_PANELCO5 -2022-02-21T210021.vib 

        22/02/2022_21:07_2,559,152,128_PANELCO5 -2022-02-22T210024.vib 

        23/02/2022_21:07_2,434,793,472_PANELCO5 -2022-02-23T210025.vib 

        24/02/2022_21:07_3,472,293,888_PANELCO5 -2022-02-24T210021.vib 

        25/02/2022_21:07_2,541,953,024_PANELCO5 -2022-02-25T210024.vib 

        27/02/2022_01:52_892,164,997,120_PANELCO5 -2022-02-26T210022.vbk 

        28/02/2022_21:07_4,082,311,168_PANELCO5 -2022-02-28T210022.vib 

        01/03/2022_21:22_3,755,438,080_PANELCO5 -2022-03-01T210022.vib 

        02/03/2022_21:07_2,359,017,472_PANELCO5 -2022-03-02T210026.vib 

        03/03/2022_21:07_2,353,123,328_PANELCO5 -2022-03-03T210022.vib 

        04/03/2022_21:07_2,956,517,376_PANELCO5 -2022-03-04T210022.vib 

        06/03/2022_02:07_892,034,031,616_PANELCO5 -2022-03-05T210020.vbk 

        07/03/2022_21:07_3,841,908,736_PANELCO5 -2022-03-07T210023.vib 

        08/03/2022_21:08_4,882,157,568_PANELCO5 -2022-03-08T210024.vib 

        09/03/2022_21:07_3,628,478,464_PANELCO5 -2022-03-09T210024.vib 

        10/03/2022_21:07_3,974,025,216_PANELCO5 -2022-03-10T210025.vib 

        11/03/2022_21:07_2,571,481,088_PANELCO5 -2022-03-11T210022.vib 

        13/03/2022_01:07_892,061,564,928_PANELCO5 -2022-03-12T210021.vbk 

        14/03/2022_21:07_3,754,545,152_PANELCO5 -2022-03-14T210023.vib 

        15/03/2022_21:07_3,458,035,712_PANELCO5 -2022-03-15T210026.vib 

        16/03/2022_21:07_2,997,325,824_PANELCO5 -2022-03-16T210026.vib 

        Donc je n'ai plus mes espaces comme je le voulais, sauf que dans les chiffres il faudrait que j'enlève les virgules.
        • Partager sur Facebook
        • Partager sur Twitter
          18 mars 2022 à 11:32:54

          Est-ce que ça, ça irait ?

          @echo off
          
          for /f "tokens=1,2,3,4,5,6 delims=, " %%f in (test2.txt) do (
          echo %%f_%%g_%%h_%%i_%%j %%k>> historiquepanel5.txt
              )
          goto :eof



          • Partager sur Facebook
          • Partager sur Twitter
            18 mars 2022 à 11:41:38

            Non ça ne marche pas cela me ressort ça :

            sa me remplace du coup la virgule par un "_".

            Sa ne m'affiche plus le nom du fichier.

            16/03/2022_21:07_1_015_010 PANELCO5

            13/02/2022_01:21_892_231_401 472

            14/02/2022_21:07_3_868_012 544

            15/02/2022_21:07_2_575_364 096

            16/02/2022_21:07_3_002_265 600

            17/02/2022_21:07_3_836_567 552

            18/02/2022_21:07_2_518_093 824

            20/02/2022_02:36_892_211_191 808

            21/02/2022_21:07_3_795_062 784

            22/02/2022_21:07_2_559_152 128

            23/02/2022_21:07_2_434_793 472

            24/02/2022_21:07_3_472_293 888

            25/02/2022_21:07_2_541_953 024

            27/02/2022_01:52_892_164_997 120

            28/02/2022_21:07_4_082_311 168

            01/03/2022_21:22_3_755_438 080

            02/03/2022_21:07_2_359_017 472

            03/03/2022_21:07_2_353_123 328

            04/03/2022_21:07_2_956_517 376

            06/03/2022_02:07_892_034_031 616

            07/03/2022_21:07_3_841_908 736

            08/03/2022_21:08_4_882_157 568

            09/03/2022_21:07_3_628_478 464

            10/03/2022_21:07_3_974_025 216

            11/03/2022_21:07_2_571_481 088

            13/03/2022_01:07_892_061_564 928

            14/03/2022_21:07_3_754_545 152

            15/03/2022_21:07_3_458_035 712

            16/03/2022_21:07_2_997_325 824

            Merci de ton aide on en est pas loin ...
            • Partager sur Facebook
            • Partager sur Twitter
              18 mars 2022 à 12:30:07

              Je crois avoir compris; en fait, ce qu'il te manquait c'est le SETLOCAL ENABLEDELAYEDEXPANSION et tu ne récupérai pas dans la variable listePanel5 le champ concerné (ou la ligne)

              @echo off
              
              SETLOCAL ENABLEDELAYEDEXPANSION
              
              for /f "tokens=1,2,3,4,5 delims= " %%f in (test2.txt) do (
              	Set v=%%h
              	set v=!v:,=!
              	echo %%f_%%g_!v!_%%i %%j>> historiquepanel5.txt
                  )
              goto :eof



              • Partager sur Facebook
              • Partager sur Twitter
                21 mars 2022 à 9:23:17

                umfred a écrit:

                Je crois avoir compris; en fait, ce qu'il te manquait c'est le SETLOCAL ENABLEDELAYEDEXPANSION et tu ne récupérai pas dans la variable listePanel5 le champ concerné (ou la ligne)

                @echo off
                
                SETLOCAL ENABLEDELAYEDEXPANSION
                
                for /f "tokens=1,2,3,4,5 delims= " %%f in (test2.txt) do (
                	Set v=%%h
                	set v=!v:,=!
                	echo %%f_%%g_!v!_%%i %%j>> historiquepanel5.txt
                    )
                goto :eof


                Désolé de l'attente pour ma réponse, je me suis reposé un peu ce week-end ^^.

                A quoi sert le SETLOCAL ?

                Donc ça marche mais j'aimerais bien comprendre comment !

                Merci en tout cas de ton aide.



                • Partager sur Facebook
                • Partager sur Twitter

                Enlever les virgules d'un fichier txt en batch

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown