Filtrer un résultat - Batch Windows

Résolu
marc750 Messages postés 4 Statut Membre -  
marc750 Messages postés 4 Statut Membre -
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. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
    1. marc750 Messages postés 4 Statut Membre
       
      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
    2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      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
    3. marc750 Messages postés 4 Statut Membre
       
      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