Filtrer un résultat - Batch Windows

Résolu/Fermé
marc750 Messages postés 4 Date d'inscription vendredi 10 avril 2015 Statut Membre Dernière intervention 13 avril 2015 - 10 avril 2015 à 15:25
marc750 Messages postés 4 Date d'inscription vendredi 10 avril 2015 Statut Membre Dernière intervention 13 avril 2015 - 13 avril 2015 à 11:10
Bonjour,

Je souhaite par l'intermédiaire d'un batch Windows, filtrer un "résultat".
Grosso modo, j'ai des machines sous le nom générique : PCMPAXXX ou encore PCMPAMXX
XXX et XX étant ensuite remplacés par une série de chiffres : Respectivement 001, 002 etc. et 01, 02, etc.

Au travers d'une variable, je récupère uniquement les digits. Ici pour les machines en PCMPAXXX : set ipmachine=%computername:~5,3%

Souhaitant maintenant utiliser le nom de chaque machine pour y attribuer une IP spécifique, j'aimerais filtrer ce "résultat" en écartant tout caractère "0" avant un chiffre supérieur à 0.
Dans le cas de PCMPA001 par exemple, je ne souhaiterais donc garder que "1" et pour autre exemple, ne garder que "25" pour PCMPA025.

Une idée peut-être ?

Merci de votre aide.

Cordialement,

Marc.
A voir également:

1 réponse

dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
11 avril 2015 à 08:13
hello
C:> set computername=PCMPA001
C:> set ipmachine=%computername:~5,3%
C:> echo %ipmachine%
001
C:> set ipmachine=%ipmachine:0=%
C:> echo %ipmachine%
1
1
marc750 Messages postés 4 Date d'inscription vendredi 10 avril 2015 Statut Membre Dernière intervention 13 avril 2015
12 avril 2015 à 17:50
Hello et merci de la réponse.
Toutefois, si ne je dis pas de bêtise, dans le cas d'un nom de machine comme PCMPA101, cela ne fonctionnera pas comme je le souhaite.
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
13 avril 2015 à 09:18
effectivement, alors comme ça
C:> set  a=101
C:> set /a a=1000%a% % 1000
101
C:> set a=001
C:> set /a a=1000%a% % 1000
1
C:> set a=100
C:> set /a a=1000%a% % 1000
100
C:> set a=009
C:> set /a a=1000%a% % 1000
9
C:> set a=022
C:> set /a a=1000%a% % 1000
22
0
marc750 Messages postés 4 Date d'inscription vendredi 10 avril 2015 Statut Membre Dernière intervention 13 avril 2015
13 avril 2015 à 11:10
Je vais tester, merci.
Entre temps, j'ai trouvé une solution également :
set ipclient=%computername%
set ipclient=%ipclient:PCMPA00=%
set ipclient=%ipclient:PCMPA0=%
set ipclient=%ipclient:PCMPAM0=%
0