Page 1 sur 1

Vérifier chaque caractères d'une chaine

Posté : 10 sept. 2009 11:06
par Devatoria
Bonjour à tous,

Voilà, j'ai un soucis. Dans un script en relation avec Active Directory, je dois vérifier la date d'expiration des comptes utilisateurs. Donc je fais une requête AD, stock le résultat dans un fichier test.txt. Ensuite, je lis le fichier texte, passe chaque ligne dans une variable "x". Mon soucis est maintenant que j'aimerais vérifier chaque caractère de ce que contient cette variable "x" via une boucle For.

Et je ne sais pas du tout comment parcouris une chaîne caractère par caractère :(

Pour l'instant, sa me donne ça :

Code : Tout sélectionner

@echo off
setlocal enableDelayedExpansion 

dsquery user "ou=Users, ou=MON, ou=Local, dc=ds, dc=intern" | dsget user -acctexpires > test.txt

set x= 

for /f %%i in (test.txt) do (
    set x=%%i
    for %%a in (!x!) do if %%a==0 (echo ok)
)

pause
Ma requête selectionne tous les utilisateurs de mon OU, et ensuite extrait la date d'epiration de leur compte dans le fichier test.txt. Ensuite, la première boucle for lit le fichier texte, et attribut la valeur de la ligne a x. La 2ème boucle doit lire la chaîne stocké dans x caractère par caractère. C'est là que je bloque :(

Merci d'avance de votre aide, cordialement.

Devatoria.

Re: Vérifier chaque caractères d'une chaine

Posté : 11 sept. 2009 10:21
par Laddy
Bonjour
as tu un exemple contenu dans ton fichier test.txt afin de nous rendre compte des caractères que tu cherches

Re: Vérifier chaque caractères d'une chaine

Posté : 11 sept. 2009 16:21
par Devatoria
Salut !

Je viens juste vous dire que j'ai finalement réussi à faire mon script, en contournant le problème. Pour ceux qui sont intéressés, voilà (en gros) comment j'ai fais.

Je récupère toutes les dates d'expiration des utilisateurs d'AD, que je stock dans un fichier texte, via un dsquery/dsget. Ensuite, je fais une boucle qui permet de récupérer les dates qui se trouvent dans le fichier, puis je les test une par une afin de savoir si les comptes ont expirés ou non. Pour cela, j'utilise la fonction "delims" qui me permet de découper la date (qui est au format JJ/MM/AAAA).

Ensuite je classe les comptes dans 2 fichiers respectifs (un pour les comptes expirés, l'autre pour les non expirés), tout en notant le numero d'identification du compte (le numero de la ligne en cours de lecture en fait). Finalement, je stock tous les noms d'utilisateurs dans un autre fichier texte, où je récupère les noms en fonction du numéro d'identification, et je les affiches. Enfin, je supprime tous les fichiers textes :)

Si certaines personnes veulent voir le code, par MP. Mais il ne contient presque aucuns commentaires, car il est à but purement professionnel, et il fait environ 200 lignes.

Merci, cordialement, Devatoria.