dans un fichier de commandes, je dois rajouter une partie permettant, dans
un fichier F, de remplacer toutes les occurrences X par Y.
1) Je peux le faire par vbscript et l'intégrer, mais ca me semble un peu
lourd.
2) J'ai essayé avec le vieil edlin.exe mais je n'arrive pas à insérer le ^Z
nécessaire :
=> le fichier mutadata.cmd ne contient que le w et q
3) Je ne peux guère utiliser une boucle avec la commande for, car le fichier
en question peut contenir des caractères qui risquent de perturber
l'exécution des commandes : des parenthèses, des <ou > ...
4) Je ne cherche pas de programme à installer, uniquement les commandes
natives de XP.
Une réponse au point 2 ? Une autre idée ?
Merci bien.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean-Claude BELLAMY
Le samedi 12/01/2013 17:43:09, Jean-Claude a écrit dans le message <news:50f19214$0$1221$ ce qui suit :
Bonjour,
dans un fichier de commandes, je dois rajouter une partie permettant, dans un fichier F, de remplacer toutes les occurrences X par Y. 1) Je peux le faire par vbscript et l'intégrer, mais ca me semble un peu lourd.
Très souvent, à vouloir "éviter" VBS ou autre langage de script par peur de lourdeur, on se complique tellement la vie avec perte d'un temps précieux qu'on aurait mieux fait d'investir tout de suite dans un micro-développement!
NB: je n'ai rien contre la ligne de commandes, je l'utilise abondamment et j'en suis un fervent partisan, mais dans certains cas il faut savoir reconnaître ses limites.
P.ex. dans ton cas, il existe en VBS la fonction "REPLACE", qui sert, comme son nom l'indique, à remplacer une chaine par un autre, et MIEUX ENCORE, j'ai conçu un script "REPLACE.VBS" qui agit directement sur un ou plusieurs fichiers :
Exemples : replace /aEssai /nx22Testx22 -flisezmoi.txt -c -s -b$$$ remplace la chaine "Essai" par ""Test"" en respectant la casse dans tous les fichiers de nom "lisezmoi.txt" situés dans le dossier courant et les sous-dossiers et effectue un backup de chaque fichier modifié en ajoutant à son nom l'extension .$$$
replace -a"array[0..255] of char" -nstring -f"g:mes projetsdelphi*.pas" remplace la chaine "array[0..255] of char" par "string" dans tous les fichiers "*.pas" du dossier "g:mes projetsdelphi"
replace -a"(S+)(s+)(S+)(s+)(S+)(s+)(S+)(s+)(S+)(s+)(S+)" -n"$1$2$11$6$7$8$9$10$3$4$5" -fm:textesignature.txt -r permute les mots 11 et 3,4,5 (en tenant compte des espaces) Ainsi le texte : "May The Force be with You" devient : "May You be with The Force"
Et en ce qui concerne les expressions régulières : http://www.bellamyjc.fr/vbsobj/vspropattern.html
-- May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------- Jean-Claude BELLAMY http://www.bellamyjc.fr ou http://www.bellamyjc.org
Le samedi 12/01/2013 17:43:09, Jean-Claude a écrit dans le message
<news:50f19214$0$1221$ba4acef3@reader.news.orange.fr> ce qui suit :
Bonjour,
dans un fichier de commandes, je dois rajouter une partie permettant, dans un
fichier F, de remplacer toutes les occurrences X par Y.
1) Je peux le faire par vbscript et l'intégrer, mais ca me semble un peu
lourd.
Très souvent, à vouloir "éviter" VBS ou autre langage de script par
peur de lourdeur, on se complique tellement la vie avec perte d'un
temps précieux qu'on aurait mieux fait d'investir tout de suite dans un
micro-développement!
NB: je n'ai rien contre la ligne de commandes, je l'utilise abondamment
et j'en suis un fervent partisan, mais dans certains cas il faut savoir
reconnaître ses limites.
P.ex. dans ton cas, il existe en VBS la fonction "REPLACE", qui sert,
comme son nom l'indique, à remplacer une chaine par un autre, et MIEUX
ENCORE, j'ai conçu un script "REPLACE.VBS" qui agit directement sur un
ou plusieurs fichiers :
Exemples :
replace /aEssai /nx22Testx22 -flisezmoi.txt -c -s -b$$$
remplace la chaine "Essai" par ""Test"" en respectant la casse
dans tous les fichiers de nom "lisezmoi.txt" situés dans le
dossier courant et les sous-dossiers et effectue un backup de
chaque fichier modifié en ajoutant à son nom l'extension .$$$
replace -a"array[0..255] of char" -nstring -f"g:mes
projetsdelphi*.pas"
remplace la chaine "array[0..255] of char" par "string"
dans tous les fichiers "*.pas" du dossier "g:mes projetsdelphi"
replace -a"(S+)(s+)(S+)(s+)(S+)(s+)(S+)(s+)(S+)(s+)(S+)"
-n"$1$2$11$6$7$8$9$10$3$4$5" -fm:textesignature.txt -r
permute les mots 11 et 3,4,5 (en tenant compte des espaces)
Ainsi le texte : "May The Force be with You"
devient : "May You be with The Force"
Et en ce qui concerne les expressions régulières :
http://www.bellamyjc.fr/vbsobj/vspropattern.html
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY
http://www.bellamyjc.fr ou http://www.bellamyjc.org
Le samedi 12/01/2013 17:43:09, Jean-Claude a écrit dans le message <news:50f19214$0$1221$ ce qui suit :
Bonjour,
dans un fichier de commandes, je dois rajouter une partie permettant, dans un fichier F, de remplacer toutes les occurrences X par Y. 1) Je peux le faire par vbscript et l'intégrer, mais ca me semble un peu lourd.
Très souvent, à vouloir "éviter" VBS ou autre langage de script par peur de lourdeur, on se complique tellement la vie avec perte d'un temps précieux qu'on aurait mieux fait d'investir tout de suite dans un micro-développement!
NB: je n'ai rien contre la ligne de commandes, je l'utilise abondamment et j'en suis un fervent partisan, mais dans certains cas il faut savoir reconnaître ses limites.
P.ex. dans ton cas, il existe en VBS la fonction "REPLACE", qui sert, comme son nom l'indique, à remplacer une chaine par un autre, et MIEUX ENCORE, j'ai conçu un script "REPLACE.VBS" qui agit directement sur un ou plusieurs fichiers :
Exemples : replace /aEssai /nx22Testx22 -flisezmoi.txt -c -s -b$$$ remplace la chaine "Essai" par ""Test"" en respectant la casse dans tous les fichiers de nom "lisezmoi.txt" situés dans le dossier courant et les sous-dossiers et effectue un backup de chaque fichier modifié en ajoutant à son nom l'extension .$$$
replace -a"array[0..255] of char" -nstring -f"g:mes projetsdelphi*.pas" remplace la chaine "array[0..255] of char" par "string" dans tous les fichiers "*.pas" du dossier "g:mes projetsdelphi"
replace -a"(S+)(s+)(S+)(s+)(S+)(s+)(S+)(s+)(S+)(s+)(S+)" -n"$1$2$11$6$7$8$9$10$3$4$5" -fm:textesignature.txt -r permute les mots 11 et 3,4,5 (en tenant compte des espaces) Ainsi le texte : "May The Force be with You" devient : "May You be with The Force"
Et en ce qui concerne les expressions régulières : http://www.bellamyjc.fr/vbsobj/vspropattern.html
-- May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------- Jean-Claude BELLAMY http://www.bellamyjc.fr ou http://www.bellamyjc.org
Olivier Miakinen
Bonjour,
Le 13/01/2013 09:39, Jean-Claude BELLAMY a écrit :
Et en ce qui concerne les expressions régulières : http://www.bellamyjc.fr/vbsobj/vspropattern.html
Il y a quelques imprécisions, par exemple dans les définitions de *, + et ?, dans celle de b, et entre les trois définitions n, num et n (sic), mais c'est bien de l'avoir en français.
J'ai une petite question malgré tout : les expressions rationnelles dans VBS sont de type Perl ? PCRE ? Autre ? Avec limitations ? La même chose que dans JavaScript ? (euh... ça fait plus d'une question, désolé)
Je propose un suivi vers fr.comp.lang.regexp, mais ne pas hésiter à rester sur fr.comp.os.ms-windows si c'est plus adapté.
Cordialement, -- Olivier Miakinen
Bonjour,
Le 13/01/2013 09:39, Jean-Claude BELLAMY a écrit :
Et en ce qui concerne les expressions régulières :
http://www.bellamyjc.fr/vbsobj/vspropattern.html
Il y a quelques imprécisions, par exemple dans les définitions de
*, + et ?, dans celle de b, et entre les trois définitions n,
num et n (sic), mais c'est bien de l'avoir en français.
J'ai une petite question malgré tout : les expressions rationnelles
dans VBS sont de type Perl ? PCRE ? Autre ? Avec limitations ? La
même chose que dans JavaScript ? (euh... ça fait plus d'une question,
désolé)
Je propose un suivi vers fr.comp.lang.regexp, mais ne pas hésiter
à rester sur fr.comp.os.ms-windows si c'est plus adapté.
Le 13/01/2013 09:39, Jean-Claude BELLAMY a écrit :
Et en ce qui concerne les expressions régulières : http://www.bellamyjc.fr/vbsobj/vspropattern.html
Il y a quelques imprécisions, par exemple dans les définitions de *, + et ?, dans celle de b, et entre les trois définitions n, num et n (sic), mais c'est bien de l'avoir en français.
J'ai une petite question malgré tout : les expressions rationnelles dans VBS sont de type Perl ? PCRE ? Autre ? Avec limitations ? La même chose que dans JavaScript ? (euh... ça fait plus d'une question, désolé)
Je propose un suivi vers fr.comp.lang.regexp, mais ne pas hésiter à rester sur fr.comp.os.ms-windows si c'est plus adapté.
Cordialement, -- Olivier Miakinen
les renardeaux
Magister dixit ; et dans l'article <50f19214$0$1221$ du samedi 12/01/2013 provenant de Jean-Claude on a pu le lire, e.g. :
Bonjour,
Hello,
dans un fichier de commandes, je dois rajouter une partie permettant, dans un fichier F, de remplacer toutes les occurrences X par Y.
3) Je ne peux guère utiliser une boucle avec la commande for, car le fichier en question peut contenir des caractères qui risquent de perturber l'exécution des commandes : des parenthèses, des <ou > ... 4) Je ne cherche pas de programme à installer, uniquement les commandes natives de XP. Une réponse au point 2 ? Une autre idée ? Merci bien.
for /f "tokens=* delims= " %%a in (chemin_mon_fichier_F) do ( set str=%%a set str=!str:^X=^Y! echo !str!>>chemin_mon_fichier_F_bis ) move chemin_mon_fichier_F_bis chemin_mon_fichier_F
-- Nathalie & Michel les petits renardeaux dans la clairière du CTV
Magister dixit ; et dans l'article
<50f19214$0$1221$ba4acef3@reader.news.orange.fr> du samedi 12/01/2013
provenant de Jean-Claude on a pu le lire, e.g. :
Bonjour,
Hello,
dans un fichier de commandes, je dois rajouter une partie permettant,
dans un fichier F, de remplacer toutes les occurrences X par Y.
3) Je ne peux guère utiliser une boucle avec la commande for, car le
fichier en question peut contenir des caractères qui risquent de
perturber l'exécution des commandes : des parenthèses, des <ou > ...
4) Je ne cherche pas de programme à installer, uniquement les
commandes natives de XP.
Une réponse au point 2 ? Une autre idée ?
Merci bien.
for /f "tokens=* delims= " %%a in (chemin_mon_fichier_F) do (
set str=%%a
set str=!str:^X=^Y!
echo !str!>>chemin_mon_fichier_F_bis
)
move chemin_mon_fichier_F_bis chemin_mon_fichier_F
Magister dixit ; et dans l'article <50f19214$0$1221$ du samedi 12/01/2013 provenant de Jean-Claude on a pu le lire, e.g. :
Bonjour,
Hello,
dans un fichier de commandes, je dois rajouter une partie permettant, dans un fichier F, de remplacer toutes les occurrences X par Y.
3) Je ne peux guère utiliser une boucle avec la commande for, car le fichier en question peut contenir des caractères qui risquent de perturber l'exécution des commandes : des parenthèses, des <ou > ... 4) Je ne cherche pas de programme à installer, uniquement les commandes natives de XP. Une réponse au point 2 ? Une autre idée ? Merci bien.
for /f "tokens=* delims= " %%a in (chemin_mon_fichier_F) do ( set str=%%a set str=!str:^X=^Y! echo !str!>>chemin_mon_fichier_F_bis ) move chemin_mon_fichier_F_bis chemin_mon_fichier_F
-- Nathalie & Michel les petits renardeaux dans la clairière du CTV
Jean-Claude
Bonsoir,
je suis d'accord sur le fait d'utiliser du vbs si besoin, mais je pose la question, des fois qu'il y ait une astuce que je ne connais pas en ligne de commande...
Bon, je ferai un petit vbs, merci !
Jean-Claude tiens, un homonyme :-)
Bonsoir,
je suis d'accord sur le fait d'utiliser du vbs si besoin, mais je pose la
question, des fois qu'il y ait une astuce que je ne connais pas en ligne de
commande...
je suis d'accord sur le fait d'utiliser du vbs si besoin, mais je pose la question, des fois qu'il y ait une astuce que je ne connais pas en ligne de commande...
Bon, je ferai un petit vbs, merci !
Jean-Claude tiens, un homonyme :-)
Jean-Claude
Bonsoir,
peut-être mais comme indiqué, mon fichier peut contenir des caractères qui risquent de ne pas plaire aux commandes en boucle,donc je cherchait autre chose...
Jean-Claude
Bonsoir,
peut-être mais comme indiqué, mon fichier peut contenir des caractères qui
risquent de ne pas plaire aux commandes en boucle,donc je cherchait autre
chose...
peut-être mais comme indiqué, mon fichier peut contenir des caractères qui risquent de ne pas plaire aux commandes en boucle,donc je cherchait autre chose...
Jean-Claude
les renardeaux
Magister dixit ; et dans l'article <50f5b3ed$0$1413$ du mardi 15/01/2013 provenant de Jean-Claude on a pu le lire, e.g. :
Bonsoir,
peut-être mais comme indiqué, mon fichier peut contenir des caractères qui risquent de ne pas plaire aux commandes en boucle,donc je cherchait autre chose...
Jean-Claude
J'ai testé pour voir sur des (, >... On dirait que ça passe, mais...
-- Nathalie & Michel les petits renardeaux dans la clairière du CTV
Magister dixit ; et dans l'article
<50f5b3ed$0$1413$ba4acef3@reader.news.orange.fr> du mardi 15/01/2013
provenant de Jean-Claude on a pu le lire, e.g. :
Bonsoir,
peut-être mais comme indiqué, mon fichier peut contenir des
caractères qui risquent de ne pas plaire aux commandes en boucle,donc
je cherchait autre chose...
Jean-Claude
J'ai testé pour voir sur des (, >... On dirait que ça passe, mais...
--
Nathalie & Michel
les petits renardeaux dans la clairière du CTV
Magister dixit ; et dans l'article <50f5b3ed$0$1413$ du mardi 15/01/2013 provenant de Jean-Claude on a pu le lire, e.g. :
Bonsoir,
peut-être mais comme indiqué, mon fichier peut contenir des caractères qui risquent de ne pas plaire aux commandes en boucle,donc je cherchait autre chose...
Jean-Claude
J'ai testé pour voir sur des (, >... On dirait que ça passe, mais...
-- Nathalie & Michel les petits renardeaux dans la clairière du CTV
les renardeaux
Magister dixit ; et dans l'article <50f5b3ed$0$1413$ du mardi 15/01/2013 provenant de Jean-Claude on a pu le lire, e.g. :
Bonsoir,
peut-être mais comme indiqué, mon fichier peut contenir des caractères qui risquent de ne pas plaire aux commandes en boucle,donc je cherchait autre chose...
Un peu tard, mais... J'ai fouillé dans mes archives et y ai retyrouvé l'excellent switch.exe qui ne craint pas les caractères 'spéciaux' et qui a une ligne de commandeultra simple :
unpoint c'est tout (ne pas oublier les " encadrant les caractères.
Tu dois ouvoir le trouver encore sur le net, sinon je te le mail.
-- Nathalie & Michel les petits renardeaux dans la clairière du CTV
Magister dixit ; et dans l'article
<50f5b3ed$0$1413$ba4acef3@reader.news.orange.fr> du mardi 15/01/2013
provenant de Jean-Claude on a pu le lire, e.g. :
Bonsoir,
peut-être mais comme indiqué, mon fichier peut contenir des
caractères qui risquent de ne pas plaire aux commandes en boucle,donc
je cherchait autre chose...
Un peu tard, mais... J'ai fouillé dans mes archives et y ai retyrouvé
l'excellent switch.exe qui ne craint pas les caractères 'spéciaux' et
qui a une ligne de commandeultra simple :
Magister dixit ; et dans l'article <50f5b3ed$0$1413$ du mardi 15/01/2013 provenant de Jean-Claude on a pu le lire, e.g. :
Bonsoir,
peut-être mais comme indiqué, mon fichier peut contenir des caractères qui risquent de ne pas plaire aux commandes en boucle,donc je cherchait autre chose...
Un peu tard, mais... J'ai fouillé dans mes archives et y ai retyrouvé l'excellent switch.exe qui ne craint pas les caractères 'spéciaux' et qui a une ligne de commandeultra simple :