[BATCH] For & Findstr

redploplop Messages postés 45 Date d'inscription   Statut Membre Dernière intervention   -  
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   -
Allo ;)

Je n'arrive pas a obtenir quelque chose de simple pourtant ..

Je vous explique, mon script doit générer un nom de PC puis vérifier si ce nom n'existe pas déjà dans le fichier AP-LPT.txt

Si il existe, il continue a créer jusqu’à créer 1 nom qui n'existe pas dans le fichier me le donner et s'arreter

Sinon il s’arrête et me dit ok ce nom n'existe pas tu peux le garder

Mon but est de récupérer le nouveau nom fraîchement crée et l'exporter vers un autre fichier hostnames.txt apres :)

La nomenclature du nom des PC est la suivante : AP-LPT-***

Je génère mes noms de PC via

FOR /l %%G in (1,1,999) echo AP-LPT-%%G


Ce qui me génère :
AP-LPT1
AP-LPT2
AP-LPT3

etc jusqu'a AP-LPT999

Je suppose qu'il faut que j'utilise la commande findstr mais je ne sais pas comment l'utiliser :/

par avance merci

1 réponse

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
ok : findstr a trouvé %%G dans le fichier
@echo off
setlocal enableDelayedExpansion
FOR /l %%G in (1,1,999) do (
 findstr /r /c:AP-LPT-%%G$ AP-LPT.txt >NUL
 if !ERRORLEVEL! EQU 0 (
    echo ok %%G
 ) else (
    echo nok %%G
  )
)
2
redploplop Messages postés 45 Date d'inscription   Statut Membre Dernière intervention  
 
Super ca fonctionne parfaitement bien !!

Il y a juste une petite faute /c:AP-LPT-%%G$ est en trop je crois ;)

MERCI !!!
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637 > redploplop Messages postés 45 Date d'inscription   Statut Membre Dernière intervention  
 
non, $ implique en fin de ligne, sinon, chercher AP-LPT-3 va aussi trouver AP-LPT-33 et AP-LPT-333
voir help findstr
Petit guide des options usuelles :
  .        Caractère joker = tout caractère
  *        Répétition : zéro occurrences ou plus du caractère ou de la classe
           précédents
  ^        Emplacement : début de ligne
  $        Emplacement : fin de ligne
........
0