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

  • Votes
  • Date
  • Date décroissante
  1. 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. 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.
      1. Malheureseument, cela ne se fait pas en batch, c'est a l utilisateur de le faire manuellement, mais merci quand meme.
    2. Contributeur
      hello
      essayer avec
      set var=%var:^%=%%% 
      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%
      2. Contributeur
        y pas de % dans exemple !!
        set var=%var:^%=%%% ........ remplace % par %%
        REM si l utilisateur tape %, j aimerais que ca en fasse deux
      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 %.
      4. Contributeur
        je ne comprends pas ce que tu veux
      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 ?
    3. Whao ! Merci infinimenr! ! Mais pourrais tu me dire ce que signifie chcp et que veux tu dire par il faut tout revoir?
      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.
    4. 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
      1. C'est un genre d'interface pour écrire des scripts ? Un IDE comme Powerbatch ?
      2. Ouais une genre d interface pour pas a avoir a mettre des echo et des >> fichier.bat à chaque ligne