Supprimer le premier caractère
Fermé
NormandieB
Messages postés
4
Date d'inscription
mercredi 6 mai 2015
Statut
Membre
Dernière intervention
7 mai 2015
-
6 mai 2015 à 09:41
NormandieB Messages postés 4 Date d'inscription mercredi 6 mai 2015 Statut Membre Dernière intervention 7 mai 2015 - 7 mai 2015 à 17:08
NormandieB Messages postés 4 Date d'inscription mercredi 6 mai 2015 Statut Membre Dernière intervention 7 mai 2015 - 7 mai 2015 à 17:08
A voir également:
- Supprimer le premier caractère
- Caractère ascii - Guide
- Supprimer une page word - Guide
- Supprimer compte instagram - Guide
- Caractere speciaux - Guide
- Caractère spéciaux - Guide
5 réponses
jogadyl
Messages postés
14
Date d'inscription
dimanche 3 mai 2015
Statut
Membre
Dernière intervention
17 mai 2015
6 mai 2015 à 20:53
6 mai 2015 à 20:53
Bonjour,
Tu pourrais essayer quelque chose comme ça :
Tu pourrais essayer quelque chose comme ça :
setlocal enabledelayedexpansion
@echo off
for /d %%I in ($*) do (
set rep=%%I
set rep=!rep:$=!
monprogramme.exe -d!rep!
)
NormandieB
Messages postés
4
Date d'inscription
mercredi 6 mai 2015
Statut
Membre
Dernière intervention
7 mai 2015
7 mai 2015 à 09:59
7 mai 2015 à 09:59
Bonjour jogadyl,
j'ai testé ta solution, impécable.
Grand merci de ton aide.
Voici le programme en entier :
rem remplissage du fichier rep.txt
dir $* /ad/b>D:\rep.txt
@echo off
for /F %%I in ('type d:\rep.txt') do (
setlocal enabledelayedexpansion
@echo off
for /d %%I in ($*) do (
set rep=%%I
set rep=!rep:$=!
MonProgramme.exe -d!rep!
)
)
j'ai testé ta solution, impécable.
Grand merci de ton aide.
Voici le programme en entier :
rem remplissage du fichier rep.txt
dir $* /ad/b>D:\rep.txt
@echo off
for /F %%I in ('type d:\rep.txt') do (
setlocal enabledelayedexpansion
@echo off
for /d %%I in ($*) do (
set rep=%%I
set rep=!rep:$=!
MonProgramme.exe -d!rep!
)
)
NormandieB
Messages postés
4
Date d'inscription
mercredi 6 mai 2015
Statut
Membre
Dernière intervention
7 mai 2015
7 mai 2015 à 10:23
7 mai 2015 à 10:23
Rebonjour,
en fait, ça fonctionne pas...
ça me paraissais long, j'ai cassé le processus et j'ai fait un echo plutot que de lancer directement le programme :
rem remplissage du fichier rep.txt
dir $* /ad/b>D:\rep.txt
@echo off
for /F %%I in ('type d:\rep.txt') do (
setlocal enabledelayedexpansion
@echo off
for /d %%I in ($*) do (
set rep=%%I
set rep=!rep:$=!
echo MonProgramme.exe -d!rep!
)
)
en fait il lance le programme mais je ne sais pas si il change de répertoire.
das la fenêtre DOS, j'ai :
MonProgramme.exe -d001
MonProgramme.exe -d002
MonProgramme.exe -d003
MonProgramme.exe -d004
MonProgramme.exe -d005
MonProgramme.exe -d006
MonProgramme.exe -d007
MonProgramme.exe -d008
MonProgramme.exe -d009
MonProgramme.exe -d010
MonProgramme.exe -d011
MonProgramme.exe -d012
MonProgramme.exe -d013
MonProgramme.exe -d014
MonProgramme.exe -d015
MonProgramme.exe -d016
...
MonProgramme.exe -dXXX
et j'ai ces ligne plusieurs fois, entrecoupées de :
"Niveau maximal de récursivité de setlocal a été atteint"
OK, je crois que je l'ai...
setlocal enabledelayedexpansion
@echo off
for /d %%I in ($*) do (
set rep=%%I
set rep=!rep:$=!
echo MonProgramme.exe -d!rep!
)
Tout simplement que je comprends rien... Il fallait que je remplace mon programme entier par le tiens jogadyl.
Là ça ne me mets les lignes echo qu'une seule fois.
Je vais tester un réel.
J'ai pas trop compris le pourquoi du comment de ton programme, je pense que c'est le /d du FOR qui arrange tout.
Encore merci.
en fait, ça fonctionne pas...
ça me paraissais long, j'ai cassé le processus et j'ai fait un echo plutot que de lancer directement le programme :
rem remplissage du fichier rep.txt
dir $* /ad/b>D:\rep.txt
@echo off
for /F %%I in ('type d:\rep.txt') do (
setlocal enabledelayedexpansion
@echo off
for /d %%I in ($*) do (
set rep=%%I
set rep=!rep:$=!
echo MonProgramme.exe -d!rep!
)
)
en fait il lance le programme mais je ne sais pas si il change de répertoire.
das la fenêtre DOS, j'ai :
MonProgramme.exe -d001
MonProgramme.exe -d002
MonProgramme.exe -d003
MonProgramme.exe -d004
MonProgramme.exe -d005
MonProgramme.exe -d006
MonProgramme.exe -d007
MonProgramme.exe -d008
MonProgramme.exe -d009
MonProgramme.exe -d010
MonProgramme.exe -d011
MonProgramme.exe -d012
MonProgramme.exe -d013
MonProgramme.exe -d014
MonProgramme.exe -d015
MonProgramme.exe -d016
...
MonProgramme.exe -dXXX
et j'ai ces ligne plusieurs fois, entrecoupées de :
"Niveau maximal de récursivité de setlocal a été atteint"
OK, je crois que je l'ai...
setlocal enabledelayedexpansion
@echo off
for /d %%I in ($*) do (
set rep=%%I
set rep=!rep:$=!
echo MonProgramme.exe -d!rep!
)
Tout simplement que je comprends rien... Il fallait que je remplace mon programme entier par le tiens jogadyl.
Là ça ne me mets les lignes echo qu'une seule fois.
Je vais tester un réel.
J'ai pas trop compris le pourquoi du comment de ton programme, je pense que c'est le /d du FOR qui arrange tout.
Encore merci.
jogadyl
Messages postés
14
Date d'inscription
dimanche 3 mai 2015
Statut
Membre
Dernière intervention
17 mai 2015
Modifié par jogadyl le 7/05/2015 à 16:52
Modifié par jogadyl le 7/05/2015 à 16:52
Ok ! J'explique un peu.
D'abord, comme du l'as compris, il n'y a qu'une seule boucle et ce n'est pas la peine de faire un fichier avec le nom des répertoires.
For /d %%I in ($*)
La variable %%I prend successivement le nom des répertoires. Sans le /d, la variable prendrait le nom des fichiers plutôt que celui des répertoires.
setlocal enabledelayedexpasion
Permet d'utiliser le ! à la place du % pour forcer la variable à être évaluée au cours du traitement. Sinon elle garderait toujours la même valeur.
set rep=%%I
set rep=!rep:$=!
la variable rep est d'abord chargée avec le nom du répertoire
et ensuite on remplace les "$" par rien du tout dans le nom du répertoire.
(regarde l'aide de la commande SET)
D'abord, comme du l'as compris, il n'y a qu'une seule boucle et ce n'est pas la peine de faire un fichier avec le nom des répertoires.
For /d %%I in ($*)
La variable %%I prend successivement le nom des répertoires. Sans le /d, la variable prendrait le nom des fichiers plutôt que celui des répertoires.
setlocal enabledelayedexpasion
Permet d'utiliser le ! à la place du % pour forcer la variable à être évaluée au cours du traitement. Sinon elle garderait toujours la même valeur.
set rep=%%I
set rep=!rep:$=!
la variable rep est d'abord chargée avec le nom du répertoire
et ensuite on remplace les "$" par rien du tout dans le nom du répertoire.
(regarde l'aide de la commande SET)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
NormandieB
Messages postés
4
Date d'inscription
mercredi 6 mai 2015
Statut
Membre
Dernière intervention
7 mai 2015
7 mai 2015 à 17:08
7 mai 2015 à 17:08
J'ai testé, ça marche super bien.
Merci de ton aide et de tes explications, je pense que ça va me servir.
J'aime aussi cette idée de remplacer le $ par rien. C'est tout bête...
Oui, va falloir que je creuse un peu sur la commande SET.
Grand merci à toi.
Merci de ton aide et de tes explications, je pense que ça va me servir.
J'aime aussi cette idée de remplacer le $ par rien. C'est tout bête...
Oui, va falloir que je creuse un peu sur la commande SET.
Grand merci à toi.