Partage
  • Partager sur Facebook
  • Partager sur Twitter

BATCH

Suppression ou ignorance d'un caractère

Sujet résolu
    28 mars 2022 à 14:01:31

    Bonjour,

    j'ai actuellement un .bat qui me récupère le détails des fichiers d'un dossier,

    il m'enlève comme je le veux les espaces etc, par contre il n'accepte pas le signe + en tant que suite de caractère et je bloque donc à ce niveaux la..

    Je n'y connais rien en bat je prend un peu d'informations de partout parce que je n'ai pas le temp pour ce langage mais malheureusement j'en ai besoin la...

    Le code :

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

    Le fichier de base (listevm1) :

    27/02/2022  08:31   105,626,087,424 Sauvegarde VM GLPI + Panelco8D2022-02-26T220034_6165.vbk
    28/02/2022  23:04     2,073,120,768 Sauvegarde VM GLPI + Panelco8D2022-02-28T220010_C5E0.vib
    01/03/2022  23:54     2,055,049,216 Sauvegarde VM GLPI + Panelco8D2022-03-01T220018_E55C.vib
    02/03/2022  23:03     1,903,206,400 Sauvegarde VM GLPI + Panelco8D2022-03-02T220029_1855.vib
    03/03/2022  23:53     1,844,379,648 Sauvegarde VM GLPI + Panelco8D2022-03-03T220016_1799.vib
    04/03/2022  23:03     2,099,924,992 Sauvegarde VM GLPI + Panelco8D2022-03-04T220029_7552.vib
    06/03/2022  08:43   105,705,369,600 Sauvegarde VM GLPI + Panelco8D2022-03-05T220021_C760.vbk
    07/03/2022  23:30     2,213,875,712 Sauvegarde VM GLPI + Panelco8D2022-03-07T220020_372A.vib
    08/03/2022  23:37     1,822,687,232 Sauvegarde VM GLPI + Panelco8D2022-03-08T220023_A352.vib
    09/03/2022  23:03     1,702,809,600 Sauvegarde VM GLPI + Panelco8D2022-03-09T220028_80F0.vib
    10/03/2022  23:36     1,816,743,936 Sauvegarde VM GLPI + Panelco8D2022-03-10T220014_8F62.vib
    11/03/2022  23:04     1,873,072,128 Sauvegarde VM GLPI + Panelco8D2022-03-11T220022_41C0.vib
    13/03/2022  06:07   105,880,711,168 Sauvegarde VM GLPI + Panelco8D2022-03-12T220033_6D44.vbk
    14/03/2022  23:04     2,725,093,376 Sauvegarde VM GLPI + Panelco8D2022-03-14T220026_0D70.vib
    15/03/2022  23:37     2,771,087,360 Sauvegarde VM GLPI + Panelco8D2022-03-15T220011_B77B.vib
    16/03/2022  23:04     3,079,467,008 Sauvegarde VM GLPI + Panelco8D2022-03-16T220016_B022.vib
    17/03/2022  23:54     2,368,663,552 Sauvegarde VM GLPI + Panelco8D2022-03-17T220016_459B.vib
    18/03/2022  23:03     1,642,823,680 Sauvegarde VM GLPI + Panelco8D2022-03-18T220021_B0D0.vib
    20/03/2022  08:36   106,072,129,536 Sauvegarde VM GLPI + Panelco8D2022-03-19T220032_28E0.vbk
    21/03/2022  23:02     2,267,090,944 Sauvegarde VM GLPI + Panelco8D2022-03-21T220016_CF94.vib
    22/03/2022  23:37     1,881,534,464 Sauvegarde VM GLPI + Panelco8D2022-03-22T220027_9EDD.vib
    23/03/2022  23:03     2,161,971,200 Sauvegarde VM GLPI + Panelco8D2022-03-23T220011_D1AC.vib
    24/03/2022  23:40     2,075,181,056 Sauvegarde VM GLPI + Panelco8D2022-03-24T220012_56FD.vib
    25/03/2022  23:03     1,834,065,920 Sauvegarde VM GLPI + Panelco8D2022-03-25T220022_A6D6.vib
    27/03/2022  08:38   106,357,989,376 Sauvegarde VM GLPI + Panelco8D2022-03-26T220011_88D4.vbk
    27/03/2022  08:38           320,740 Sauvegarde VM.vbm

    Le résultat :

    27/02/2022_08:31_105626087424_Sauvegarde VM
    28/02/2022_23:04_2073120768_Sauvegarde VM
    01/03/2022_23:54_2055049216_Sauvegarde VM
    02/03/2022_23:03_1903206400_Sauvegarde VM
    03/03/2022_23:53_1844379648_Sauvegarde VM
    04/03/2022_23:03_2099924992_Sauvegarde VM
    06/03/2022_08:43_105705369600_Sauvegarde VM
    07/03/2022_23:30_2213875712_Sauvegarde VM
    08/03/2022_23:37_1822687232_Sauvegarde VM
    09/03/2022_23:03_1702809600_Sauvegarde VM
    10/03/2022_23:36_1816743936_Sauvegarde VM
    11/03/2022_23:04_1873072128_Sauvegarde VM
    13/03/2022_06:07_105880711168_Sauvegarde VM
    14/03/2022_23:04_2725093376_Sauvegarde VM
    15/03/2022_23:37_2771087360_Sauvegarde VM
    16/03/2022_23:04_3079467008_Sauvegarde VM
    17/03/2022_23:54_2368663552_Sauvegarde VM
    18/03/2022_23:03_1642823680_Sauvegarde VM
    20/03/2022_08:36_106072129536_Sauvegarde VM
    21/03/2022_23:02_2267090944_Sauvegarde VM
    22/03/2022_23:37_1881534464_Sauvegarde VM
    23/03/2022_23:03_2161971200_Sauvegarde VM
    24/03/2022_23:40_2075181056_Sauvegarde VM
    25/03/2022_23:03_1834065920_Sauvegarde VM
    27/03/2022_08:38_106357989376_Sauvegarde VM
    27/03/2022_08:38_320740_Sauvegarde VM.vbm
    

    Tandis que moi je souhaiterai un résultat comme ceci :

    27/03/2022_08:38_106357989376_Sauvegarde-VM-GLPI+Panelco8D2022-03-26T220011_88D4.vbk



    Merci d'avance !



    -
    Edité par DylanNasles2 28 mars 2022 à 14:06:51

    • Partager sur Facebook
    • Partager sur Twitter
      28 mars 2022 à 18:59:22

      tu as combien de chaines (colonnes) séparées par un espace ou un + ? et combien tu en utilises derrière pour recombiner ?

      pour moi, tu as 7 colonnes, donc, il faut les 7 tokens, (tu peux faire tokens=1-7 pour faire plus court) et tu concatènes ensuite de f à l au niveau des variables.

      • Partager sur Facebook
      • Partager sur Twitter
        28 mars 2022 à 23:01:38

        Bonsoir,

        Comme ceci ?

        @echo off
        
        SETLOCAL ENABLEDELAYEDEXPANSION
          
        for /f "tokens=1-7 delims=+ " %%f in (listepanel/listevm1.txt) do (
            Set v=%%h
            set v=!v:,=!
            echo %%f_%%g_!v!_%%i-%%j-%%k+%%l>> "Historique/historiquevm1.txt"
            )
        exit
        



        • Partager sur Facebook
        • Partager sur Twitter
          29 mars 2022 à 8:47:48

          Zaibai a écrit:

          Bonsoir,

          Comme ceci ?

          @echo off
          
          SETLOCAL ENABLEDELAYEDEXPANSION
            
          for /f "tokens=1-7 delims=+ " %%f in (listepanel/listevm1.txt) do (
              Set v=%%h
              set v=!v:,=!
              echo %%f_%%g_!v!_%%i-%%j-%%k+%%l>> "Historique/historiquevm1.txt"
              )
          exit
          




          Alors ça marche aux niveaux du txt mais cela ne marche plus au niveau du php, parce que je récupère ce fichier pour le mettre dans mon tableau php et ensuite dans ma base, mais le nom ne s'affiche toujours pas entièrement ?

          Script batch:

          @echo off
           
          SETLOCAL ENABLEDELAYEDEXPANSION
             
          for /f "tokens=1-7 delims=+ " %%f in (listepanel/listevm1.txt) do (
              Set v=%%h
              set v=!v:,=!
              echo %%f_%%g_!v!_%%i-%%j-%%k+%%l>> "Historique/historiquevm1.txt"
              )
          exit

          Résultat txt :

          27/02/2022_08:31_105626087424_Sauvegarde-VM-GLPI+Panelco8D2022-02-26T220034_6165.vbk
          28/02/2022_23:04_2073120768_Sauvegarde-VM-GLPI+Panelco8D2022-02-28T220010_C5E0.vib
          01/03/2022_23:54_2055049216_Sauvegarde-VM-GLPI+Panelco8D2022-03-01T220018_E55C.vib
          02/03/2022_23:03_1903206400_Sauvegarde-VM-GLPI+Panelco8D2022-03-02T220029_1855.vib
          03/03/2022_23:53_1844379648_Sauvegarde-VM-GLPI+Panelco8D2022-03-03T220016_1799.vib
          04/03/2022_23:03_2099924992_Sauvegarde-VM-GLPI+Panelco8D2022-03-04T220029_7552.vib
          06/03/2022_08:43_105705369600_Sauvegarde-VM-GLPI+Panelco8D2022-03-05T220021_C760.vbk
          07/03/2022_23:30_2213875712_Sauvegarde-VM-GLPI+Panelco8D2022-03-07T220020_372A.vib
          08/03/2022_23:37_1822687232_Sauvegarde-VM-GLPI+Panelco8D2022-03-08T220023_A352.vib
          09/03/2022_23:03_1702809600_Sauvegarde-VM-GLPI+Panelco8D2022-03-09T220028_80F0.vib
          10/03/2022_23:36_1816743936_Sauvegarde-VM-GLPI+Panelco8D2022-03-10T220014_8F62.vib
          11/03/2022_23:04_1873072128_Sauvegarde-VM-GLPI+Panelco8D2022-03-11T220022_41C0.vib
          13/03/2022_06:07_105880711168_Sauvegarde-VM-GLPI+Panelco8D2022-03-12T220033_6D44.vbk
          14/03/2022_23:04_2725093376_Sauvegarde-VM-GLPI+Panelco8D2022-03-14T220026_0D70.vib
          15/03/2022_23:37_2771087360_Sauvegarde-VM-GLPI+Panelco8D2022-03-15T220011_B77B.vib
          16/03/2022_23:04_3079467008_Sauvegarde-VM-GLPI+Panelco8D2022-03-16T220016_B022.vib
          17/03/2022_23:54_2368663552_Sauvegarde-VM-GLPI+Panelco8D2022-03-17T220016_459B.vib
          18/03/2022_23:03_1642823680_Sauvegarde-VM-GLPI+Panelco8D2022-03-18T220021_B0D0.vib
          20/03/2022_08:36_106072129536_Sauvegarde-VM-GLPI+Panelco8D2022-03-19T220032_28E0.vbk
          21/03/2022_23:02_2267090944_Sauvegarde-VM-GLPI+Panelco8D2022-03-21T220016_CF94.vib
          22/03/2022_23:37_1881534464_Sauvegarde-VM-GLPI+Panelco8D2022-03-22T220027_9EDD.vib
          23/03/2022_23:03_2161971200_Sauvegarde-VM-GLPI+Panelco8D2022-03-23T220011_D1AC.vib
          24/03/2022_23:40_2075181056_Sauvegarde-VM-GLPI+Panelco8D2022-03-24T220012_56FD.vib
          25/03/2022_23:03_1834065920_Sauvegarde-VM-GLPI+Panelco8D2022-03-25T220022_A6D6.vib
          27/03/2022_08:38_106357989376_Sauvegarde-VM-GLPI+Panelco8D2022-03-26T220011_88D4.vbk
          27/03/2022_08:38_320740_Sauvegarde-VM.vbm-+
          

          Dans le tableau :

          2022-03-22 23:37 1.75 Go Sauvegarde-VM-GLPI+Panelco8D2022-03-22T220027 Suspect
          2022-03-23 23:03 2.01 Go Sauvegarde-VM-GLPI+Panelco8D2022-03-23T220011 Suspect
          2022-03-24 23:40 1.93 Go Sauvegarde-VM-GLPI+Panelco8D2022-03-24T220012 Suspect
          2022-03-25 23:03 1.71 Go Sauvegarde-VM-GLPI+Panelco8D2022-03-25T220022 Suspect
          2022-03-27 08:38 99.05 Go Sauvegarde-VM-GLPI+Panelco8D2022-03-26T220011 Suspect
          2022-03-27 08:38 0 Go Sauvegarde-VM.vbm-+

          KO

          code php :
          <?php 
          $tab = array_map('trim', file('CommandeBatSauv\listeInfoSauv\Historique\historiquepanel6.txt'));
          $tab2 = array();
          foreach($tab as $ligne)
          {
            if(!empty($ligne))
            {
              $inf = explode('_', $ligne);
              $tab2[] = array('Date' => $inf[0], 'Heure' => $inf[1], 'Taille' => $inf[2], 'Nom' => $inf[3]);
            }
          }
           
          if($tab2 != NULL)
          {   
          		//insertion en base de données
          	$req = $c->prepare('INSERT INTO savepanel6(id, Date1, Heure, Taille, nom) VALUES (DEFAULT, ?, ?, ?, ?) ON DUPLICATE KEY UPDATE
              Date1 = VALUES(Date1),
              Heure = VALUES(Heure),
              Taille = VALUES(Taille)'); 

          et j'ai vraiment besoin du nom complet...

          **EDIT**

          J'ai compris que cela ne marchait pas étant données que l'extension (la suite du nom) se situe après un "_" qui justement indique un nouveau champs, comme faire pour enlever ce dernier ?

          -
          Edité par DylanNasles2 29 mars 2022 à 8:50:01

          • Partager sur Facebook
          • Partager sur Twitter
            29 mars 2022 à 9:43:44

            toujours le même "problème" dans la récupération des noms: tu "exploses" (sépare) la ligne selon les "_" et tu ne récupères que la 3ème partie ($inf[3]) pour reconstituer le nom du fichier, il faut donc rajouter $inf[4] si il est présent (ou si len($inf)>4)

            ou indiquer le nombre de chaine maxi du explode (peut-être le plus simple)

            $inf = explode('_', $ligne,4);



            • Partager sur Facebook
            • Partager sur Twitter
              29 mars 2022 à 10:00:42

              umfred a écrit:

              toujours le même "problème" dans la récupération des noms: tu "exploses" (sépare) la ligne selon les "_" et tu ne récupères que la 3ème partie ($inf[3]) pour reconstituer le nom du fichier, il faut donc rajouter $inf[4] si il est présent (ou si len($inf)>4)

              ou indiquer le nombre de chaine maxi du explode (peut-être le plus simple)

              $inf = explode('_', $ligne,4);



              J'ai fais autrement du coup ! J'ai tout simplement remodifier le fichier bat qui ne convenait pas comme il fallait :

              @echo off
               
              SETLOCAL ENABLEDELAYEDEXPANSION
                 
              for /f "tokens=1-8 delims=_+ " %%f in (listepanel/listevm1.txt) do (
                  Set v=%%h
                  set v=!v:,=!
                  echo %%f_%%g_!v!_%%i-%%j-%%k+%%l-%%m>> "Historique/historiquevm1.txt"
                  )
              exit

              En fait, j'ai rajouter un token qui était dût à la séparation à la fin, ensuite j'ai delims le "_" existant, et je l'ai remplacer par un tiret "-".

              • Partager sur Facebook
              • Partager sur Twitter
                29 mars 2022 à 10:03:15

                Sinon question "bête" pourquoi tu ne traites pas directement le fichier listepanel/listevm1.txt en php ?
                • Partager sur Facebook
                • Partager sur Twitter
                  29 mars 2022 à 10:07:08

                  umfred a écrit:

                  Sinon question "bête" pourquoi tu ne traites pas directement le fichier listepanel/listevm1.txt en php ?


                  On me la beaucoup posé cette question.

                  En faite les fichiers se trouvent sur un réseau, qui est sécuriser par plusieurs mot de passe.

                  PHP n'arrive donc pas à passer à travers plusieurs mot de passe, il est bloquer et ne détecte donc pas le chemin d'accès.

                  Tandis que le batch lui va trouver le point d'accès sans être embêté par les mdp.

                  Voila ^^ 

                  • Partager sur Facebook
                  • Partager sur Twitter

                  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