Remplacer % par %%

Résolu/Fermé
HamsterNinja Messages postés 12 Date d'inscription lundi 14 octobre 2019 Statut Membre Dernière intervention 14 octobre 2019 - Modifié le 14 oct. 2019 à 02:53
HamsterNinja Messages postés 12 Date d'inscription lundi 14 octobre 2019 Statut Membre Dernière intervention 14 octobre 2019 - 14 oct. 2019 à 23:42
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
A voir également:

6 réponses

barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908
Modifié le 14 oct. 2019 à 22:24
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
fabul Messages postés 37704 Date d'inscription dimanche 18 janvier 2009 Statut Modérateur Dernière intervention 25 avril 2024 5 172
Modifié le 14 oct. 2019 à 03:23
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
HamsterNinja Messages postés 12 Date d'inscription lundi 14 octobre 2019 Statut Membre Dernière intervention 14 octobre 2019
Modifié le 14 oct. 2019 à 16:06
Malheureseument, cela ne se fait pas en batch, c'est a l utilisateur de le faire manuellement, mais merci quand meme.
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
14 oct. 2019 à 12:01
hello
essayer avec
set var=%var:^%=%%% 
0
HamsterNinja Messages postés 12 Date d'inscription lundi 14 octobre 2019 Statut Membre Dernière intervention 14 octobre 2019
Modifié le 14 oct. 2019 à 16:14
Ç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
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
Modifié le 14 oct. 2019 à 16:16
y pas de % dans exemple !!
set var=%var:^%=%%% ........ remplace % par %%
REM si l utilisateur tape %, j aimerais que ca en fasse deux
0
HamsterNinja Messages postés 12 Date d'inscription lundi 14 octobre 2019 Statut Membre Dernière intervention 14 octobre 2019 > dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024
14 oct. 2019 à 16:15
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 %.
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
14 oct. 2019 à 16:18
je ne comprends pas ce que tu veux
0
HamsterNinja Messages postés 12 Date d'inscription lundi 14 octobre 2019 Statut Membre Dernière intervention 14 octobre 2019 > dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024
14 oct. 2019 à 16:22
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 ?
0
HamsterNinja Messages postés 12 Date d'inscription lundi 14 octobre 2019 Statut Membre Dernière intervention 14 octobre 2019
14 oct. 2019 à 23:13
Whao ! Merci infinimenr! ! Mais pourrais tu me dire ce que signifie chcp et que veux tu dire par il faut tout revoir?
0
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908
14 oct. 2019 à 23:24
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
HamsterNinja Messages postés 12 Date d'inscription lundi 14 octobre 2019 Statut Membre Dernière intervention 14 octobre 2019
14 oct. 2019 à 23:32
Ah ok merci ! C'est pas grave si c'est compliqué.
0
HamsterNinja Messages postés 12 Date d'inscription lundi 14 octobre 2019 Statut Membre Dernière intervention 14 octobre 2019
14 oct. 2019 à 23:35
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
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908
14 oct. 2019 à 23:39
C'est un genre d'interface pour écrire des scripts ? Un IDE comme Powerbatch ?
0
HamsterNinja Messages postés 12 Date d'inscription lundi 14 octobre 2019 Statut Membre Dernière intervention 14 octobre 2019
14 oct. 2019 à 23:42
Ouais une genre d interface pour pas a avoir a mettre des echo et des >> fichier.bat à chaque ligne
0