[BATCH] For & Findstr

Fermé
redploplop Messages postés 46 Date d'inscription mardi 6 juillet 2010 Statut Membre Dernière intervention 8 septembre 2020 - 13 févr. 2020 à 08:18
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 - 13 févr. 2020 à 15:32
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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
Modifié le 13 févr. 2020 à 10:39
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 46 Date d'inscription mardi 6 juillet 2010 Statut Membre Dernière intervention 8 septembre 2020
13 févr. 2020 à 14:30
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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615 > redploplop Messages postés 46 Date d'inscription mardi 6 juillet 2010 Statut Membre Dernière intervention 8 septembre 2020
13 févr. 2020 à 15:32
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