Bonjour, je viens demander de l'aide parce que je n'arrive pas à rechercher et remplacer une chaîne de caractère par une autre sous cmd avec switch.exe pour un fichier voici le code que j'ai essayer
Code: Select all :chemin Set "chemin1=Z:\Source\data\design\buildings\industry\businessservice\b_office30_t2.class" :commande Set "chaine1=<ResourceNumber>dec</ResourceNumber>" Set /a resultat=%dec%*5 Set "chaine2=<ResourceNumber>%resultat%</ResourceNumber>" "C:\Windows\System32\switch.exe" %chemin1% "%chaine1%" "%chaine2%" |
j'ai tester ça ne marche pas ça ne donne pas du tout le resultat que je veut.
Ce que je veut c'est remplacer
Code: Select all <ResourceNumber>dec</ResourceNumber> |
par
Code: Select all <ResourceNumber>%resultat%</ResourceNumber> |
bien sur dec peut être n'importe quel nombre décimal et %resultat% ce nombre multiplier par 5.
Ensuite quand tout celà sera aux point je voudrais savoir comment faire pour rechercher et remplacer une chaîne de caractère par une autre sous cmd mais là sur plusieurs fichiers d'un seul coup avec condition si pour le de fichier si le fichier à le bon nom il est traiter si non fichier suivant.
Et à oui pour vérifier si le fichier à bien la ligne suivante à traiter
Code: Select all <Production1> <ResourceName>ROFF_0</ResourceName> <ResourceNumber>dec</ResourceNumber> <ResourceUnitMinPriceBenef>dec</ResourceUnitMinPriceBenef> </Production1> |
sinon fichier suivant comment on fait?
Aussi je voudrais remplacer sur plusieurs lignes avec différent variable exemple
Code: Select all <MaxJobPerCulture> <AllAm>2</AllAm> <Suit>2</Suit> </MaxJobPerCulture> |
pour traiter
Code: Select all <AllAm>2</AllAm> |
et
Code: Select all <Suit>2</Suit> |
séparément mais bien entre les 2 lignes suivante
Code: Select all <MaxJobPerCulture> |
et
Code: Select all </MaxJobPerCulture> |
Code: Select all <MaxJobPerCulture> |
Code: Select all </MaxJobPerCulture> |
est variable il peut y avoir de 1 ligne à 4 lignes donc pour
Code: Select all <MaxJobPerCulture> |
et
Code: Select all </MaxJobPerCulture> |
qui sont des variables de début et de fin il peut y avoir entre 1 ligne et 4 lignes
exemple
Code: Select all <MaxJobPerCulture> <Low>2</Low> <AllAm>2</AllAm> <Suit>2</Suit> <Elite>2</Elite> </MaxJobPerCulture> |
donc pour
Code: Select all <Low>2</Low> |
ou
Code: Select all <AllAm>2</AllAm> |
ou
Code: Select all <Suit>2</Suit> |
ou
Code: Select all <Elite>2</Elite> |
il peut y avoir 0 ligne à 3 lignes qui les sépare de
Code: Select all <MaxJobPerCulture> |
et
Code: Select all </MaxJobPerCulture> |
Autre question Pour remplacer n'importe quel chiffre sous cmd c'est quoi le caractère bonus?
Edit: j'ai résolu mon problème mais pas avec le langague bat ni avec le programme cmd de Windows XP, Windows Vista, Windows 7 mais avec python 2.7.2 version Windows 32 bits.
----
Publié : Mercredi 07 Septembre 2011 12:51:46
Rebonjour je n'ai toujours pas résolu le problème bien que j'ai pu faire une partie de code opérationnel le voici
Code: Select all @echo on :chemin set "chemin1='dir "Z:\source\*t2.*" /b /s /-c /a:-d-s-h'" set "chemin2="Z:\source\data\design\buildings\industry\businessservice\b_office30_t2.class"" :fichier for /f "delims=" %%i in (%chemin1%) do (call :fichierencours %%i) :fichierencours set disque=%~d1& set chemin3=%~p1& set chemin4=%chemin3:~8% set chemin5="Z:\destination X2\%chemin4%%nom%%extension%" set nom=%~n1& set extension=%~x1 set chemin6=%disque%%chemin3%%nom%%extension% set Rep1="Z:\destination X2\%chemin4%" set Rep1md=md %Rep1% :variable set "variable1=[0-9]*" set "chaine1=<ResourceNumber>%variable1%</ResourceNumber>" for /f "delims=" %%a in ('findstr "%chaine1%" %1') do (%%a %Rep1md% echo set "chaine2=%%a">>%chemin5%) |
En gros ça dis pour l'étiquette :fichier tout les fichiers qui commence par n'importe quoi en nom et qui se termine par t2 juste avant l'extension et ayant n'importe quel extension ainsi des fichiers des sous dossiers du répertoire source dans le lecteur Z: avec arborescent de dossiers et non.extension des fichiers préserver qui va dans :fichierencours la variable %chemin6% c'est l'adresse complète du fichier en cours, %chemin5% celui du fichier de sortie %Rep1% le répertoire de sortie et %Rep1md% la création du répertoire de sortie si il n'existe pas.
MediaVistaIntel
----
Publié : Dimanche 11 Septembre 2011 10:43:17
Rebonjour, toujours dans mon problème, je voudrais savoir comment appeler une variable set par %nombre1% mais qui ce trouve dans un autre fichier cmd?