Filtrer un résultat - Batch Windows

Résolu
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.

1 réponse

  1. Contributeur
    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. 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.
    2. Contributeur
      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
    3. 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=%