Remplacer % par %% [Résolu/Fermé]

Signaler
Messages postés
12
Date d'inscription
lundi 14 octobre 2019
Statut
Membre
Dernière intervention
14 octobre 2019
-
Messages postés
12
Date d'inscription
lundi 14 octobre 2019
Statut
Membre
Dernière intervention
14 octobre 2019
-
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

Messages postés
13547
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
20 juin 2021
4 403
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.



“L'intelligence artificielle se définit comme le contraire de la bêtise naturelle.”
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
28520
Date d'inscription
dimanche 18 janvier 2009
Statut
Contributeur
Dernière intervention
20 juin 2021
3 820
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.
Messages postés
12
Date d'inscription
lundi 14 octobre 2019
Statut
Membre
Dernière intervention
14 octobre 2019

Malheureseument, cela ne se fait pas en batch, c'est a l utilisateur de le faire manuellement, mais merci quand meme.
Messages postés
18242
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
13 juin 2021
5 306
hello
essayer avec
set var=%var:^%=%%% 
Messages postés
12
Date d'inscription
lundi 14 octobre 2019
Statut
Membre
Dernière intervention
14 octobre 2019
>
Messages postés
18242
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
13 juin 2021

Ah 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 %.
Messages postés
18242
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
13 juin 2021
5 306
je ne comprends pas ce que tu veux
Messages postés
12
Date d'inscription
lundi 14 octobre 2019
Statut
Membre
Dernière intervention
14 octobre 2019
>
Messages postés
18242
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
13 juin 2021

Ce 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 ?
>
Messages postés
12
Date d'inscription
lundi 14 octobre 2019
Statut
Membre
Dernière intervention
14 octobre 2019

Bonjour,

Je me permets d'intervenir pour tenter de trouver une solution.

Ca n'est vraiment pas très clair, pourquoi l'utilisateur s'amuserait à entrer une variable ?
Dans quel but désires-tu doubler les pourcents dans le fichier texte ? Si tu arrives à répondre à cette question je pense être en mesure de t'aider.
Messages postés
12
Date d'inscription
lundi 14 octobre 2019
Statut
Membre
Dernière intervention
14 octobre 2019
> barnabe0057
En fait, j aimerais faire un programme qui transforme le code entré, en format d'installation (echo '"le texte" >> fichier.bat) pour pouvoir le copier coller et le mettre dans un autre fichier, qui quand va s'ouvrir, va créer le fichier. Je ne sais pas si c'est clair. Donc, si dans un code que je veux transformer en echo "code" >> fichier.bat, il y a des variables, il faut doubler les % pour pouvoir bien les retranscrire dans un autre fichier. Ex:
(moncode est le code que je veux entrer)
set /p moncode=
set moncode=%moncode:%=%%% (pour doubler les % mais ca marche pas)
echo echo %moncode% ^>^>^ fichierouinstaller.bat >> fichier.bat
FIN
Si %moncode% a des % dedans, cela ne va pas marcher, car le programme va retranscrire (on va dire que %moncode% c'est %bonjour%)
echo %bonjour% >> fichierouinstaller.bat
Et quand je vais a mon tour lancer fichier.bat (car la ligne ci-dessus est dirige dans fichier.bat), il ne va pas ecrire %bonjour% tel quel dans fichierouinstaller.bat mais la valeur, donc rien car elle n'est pas defini. Et il va y avoir pleins de valeur
dans %moncode% que je vais copier. J espere que c'est clair, et merci d'avance pour l'aide.
Messages postés
12
Date d'inscription
lundi 14 octobre 2019
Statut
Membre
Dernière intervention
14 octobre 2019

Whao ! Merci infinimenr! ! Mais pourrais tu me dire ce que signifie chcp et que veux tu dire par il faut tout revoir?
Messages postés
13547
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
20 juin 2021
4 403
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.
Messages postés
12
Date d'inscription
lundi 14 octobre 2019
Statut
Membre
Dernière intervention
14 octobre 2019

Ah ok merci ! C'est pas grave si c'est compliqué.
Messages postés
12
Date d'inscription
lundi 14 octobre 2019
Statut
Membre
Dernière intervention
14 octobre 2019

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
Messages postés
13547
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
20 juin 2021
4 403
C'est un genre d'interface pour écrire des scripts ? Un IDE comme Powerbatch ?
Messages postés
12
Date d'inscription
lundi 14 octobre 2019
Statut
Membre
Dernière intervention
14 octobre 2019

Ouais une genre d interface pour pas a avoir a mettre des echo et des >> fichier.bat à chaque ligne