Remplacer % par %%

Résolu
Le titre n'est pas tres clair mais en resume, je voudrais savoir comment on fait pour transformer un "%" en deux "%%".
Code :
@echo off
set /p var=
REM si l utilisateur tape %, j aimerais que ca en fasse deux
set var=%var:%=%%%
echo %var%
J espere que vous comprendrez.
Je cherche a remplacer des caractères par d autres, de cette façon.
Si je veux remplacer les "a" dune variable par b par exemple je ferais ceci:
set var=%var:a=b%
Mais ca marche pas avec les pourcentages (je me doutais bien), et j'ai pas trouve de solution.
Merci d'avance

6 réponses

  1. Mon projet est que tout ce que j écris dans un set /p va être transféré dans un autre fichier entoure d un echo et d un >> fichier.bat, c'est tout. Ex: echo (le texte que j ai ecrit) >> fichier.bat
    0
    1. C'est un genre d'interface pour écrire des scripts ? Un IDE comme Powerbatch ?
      0
    2. Ouais une genre d interface pour pas a avoir a mettre des echo et des >> fichier.bat à chaque ligne
      0
  2. Ah ok merci ! C'est pas grave si c'est compliqué.
    0
    1. Whao ! Merci infinimenr! ! Mais pourrais tu me dire ce que signifie chcp et que veux tu dire par il faut tout revoir?
      0
      1. CHCP signifie "Change Codepage" cela permet de modifier l'encodage des caractères.

        Quand je dis "il faut tout revoir" je pense que ta façon de faire est inutilement compliqué, il doit y avoir un moyen plus simple mais je n'ai pas assez d'informations sur ton projet.
        0
    2. Voilà la solution :
      @echo off
      setlocal enableextensions enabledelayedexpansion
      chcp 65001 >nul

      set /p "moncode=Tapez votre code: "
      set moncode=!moncode:%%=%%%%!
      echo !moncode! > 0000.txt

      Même si je ne comprends pas exactement ton but final, je peux dire que ta méthode n'est certainement pas la bonne, il faut tout revoir.

      1
      1. Contributeur
        hello
        essayer avec
        set var=%var:^%=%%% 
        0
        1. Ça ne marche pas, si je fais echo %var% apres, il m affiche la valeur avec un % apres.
          Ex:
          set var=%%exemple%%
          set var=%var:^%=%%%
          echo %var%
          pause > nul
          Il m affiche exemple%
          0
        2. Contributeur
          y pas de % dans exemple !!
          set var=%var:^%=%%% ........ remplace % par %%
          REM si l utilisateur tape %, j aimerais que ca en fasse deux
          0
        3. @dubcekAh pardon je me suis trompe :) Mais ça fait la même chose avec des %. Si il n y en a pas dans la valeur, ça en met un après, même chose s il y a des %.
          0
        4. Contributeur
          je ne comprends pas ce que tu veux
          0
        5. @dubcekCe sera plus simple avec un exemple :
          @echo off
          set /p var=
          COMMANDE POUR TRANSFORMER UN % EN DEUX %
          echo %var%>>var.txt
          Jaimerais que si l utilistateur tape par exemple %bonjour% dans le set /p, au lieu que ça écrive %exemple% dans var.txt, j aimerais que ça ecrive %%exemple%% dans var.txt, que ca double les %. Cest plus clair ?
          0
      2. Modérateur
        Salut,

        Si tu peux, utilises le notepad (Ctrl + H)

        Sinon une variable de commande comme % à répliquer en utilisant la même variable, je sais pas comment.

        D'autres qui s'y connaissent plus te le diront peut être.
        0
        1. Malheureseument, cela ne se fait pas en batch, c'est a l utilisateur de le faire manuellement, mais merci quand meme.
          0