Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1229 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Récupérer valeur dir en vbs

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Récupérer valeur dir en vbs

n°2146107
Nyati1969
Posté le 17-06-2012 à 17:29:44  profilanswer
 

Bonjour,
Existe t'il de récuperer par la commande dir le nombre de fichiers touvés?
Exemple:  
Imaginons que je fasse dans une fenêtre dos C:\Users\Nicolas\Desktop\VBS\*.txt et qu'il me renvoie 3 fichiers
comment puis-je en vbs récupérer le nombre de fichier.
En vbs la commande dir est exécuter en mode caché par :
Set oExec = WshShell.Exec("cmd /k dir C:\Users\Nicolas\Desktop\VBS\*.txt " )
Mais comment faire pour ensuite récupérer le nombre de fichiers trouvés????
 
Merci de vos réponses!
Nicolas

mood
Publicité
Posté le 17-06-2012 à 17:29:44  profilanswer
 

n°2146108
dreameddea​th
Posté le 17-06-2012 à 17:52:41  profilanswer
 

Tu as la réponse dans ton post, et vu que je sais bien que c'est plus compliqué que le foreach, j'ai mis une règle de parsing du stdout de la commande dir (expression régulière), et tu n'as qu'à compter les lignes qui "matchent"
 
Regarde donc dans ton post sur la lecture à distance ;)
 
http://forum.hardware.fr/hfr/Progr [...] 7265_1.htm

Message cité 1 fois
Message édité par dreameddeath le 17-06-2012 à 17:53:05
n°2146144
Nyati1969
Posté le 17-06-2012 à 20:53:07  profilanswer
 

dreameddeath a écrit :

Tu as la réponse dans ton post, et vu que je sais bien que c'est plus compliqué que le foreach, j'ai mis une règle de parsing du stdout de la commande dir (expression régulière), et tu n'as qu'à compter les lignes qui "matchent"
 
Regarde donc dans ton post sur la lecture à distance ;)
 
http://forum.hardware.fr/hfr/Progr [...] 7265_1.htm


 
Euuh merci de la réponse dreameddeath.
Mais je dois t'avouer je n'ai pas tout compris.
Si je mets MsgBOX parts.count avant :
        if(parts.count>0) then
il m'affiche une série de 0 et de 1 puis de 0 avant d'afficher la liste des fichiers.
J'ai dû ratter qqchose mais quoi???

n°2146149
dreameddea​th
Posté le 17-06-2012 à 22:45:05  profilanswer
 

en fait shell.execute renvoie un stdout (très connu dans le monde unix mais aussi pour les "anciens" de ms-dos) : x'est la chaîne de caractère qu'affiche le programme exécuté dans le mode ligne de commande.
 
C'est cette sortie standard qui est "post-traitée" par la boucle, qui la lit ligne par ligne ( la méthode readline )
 
Le problème, c'est que si tu regardes la sortie standard, cmd renvoie en plus de la liste des fichiers un certain nombre de lignes "parasites", qu''il faut filtrer : c'est but de l'expression rationnelle (variable parseLine). Elle valide le format de la ligne et en extrait des "bouts" (les éléments entre parenthèse dans le "pattern" ).
 
Si count > 0 alors ça "match" (correspond) et donc après, il faut en faire ce que tu veux (compter, valider la date :), post traiter, etc...)
 
La notion d'expression régulière est bien documentée sur le net (google est ton ami)
 
En espérant que ça aide à comprendre....

Message cité 1 fois
Message édité par dreameddeath le 17-06-2012 à 22:46:27
n°2146155
Nyati1969
Posté le 18-06-2012 à 00:54:35  profilanswer
 

dreameddeath a écrit :

en fait shell.execute renvoie un stdout (très connu dans le monde unix mais aussi pour les "anciens" de ms-dos) : x'est la chaîne de caractère qu'affiche le programme exécuté dans le mode ligne de commande.
 
C'est cette sortie standard qui est "post-traitée" par la boucle, qui la lit ligne par ligne ( la méthode readline )
 
Le problème, c'est que si tu regardes la sortie standard, cmd renvoie en plus de la liste des fichiers un certain nombre de lignes "parasites", qu''il faut filtrer : c'est but de l'expression rationnelle (variable parseLine). Elle valide le format de la ligne et en extrait des "bouts" (les éléments entre parenthèse dans le "pattern" ).
 
Si count > 0 alors ça "match" (correspond) et donc après, il faut en faire ce que tu veux (compter, valider la date :), post traiter, etc...)
 
La notion d'expression régulière est bien documentée sur le net (google est ton ami)
 
En espérant que ça aide à comprendre....


 

dreameddeath je t'adore!
merci pour tes aides et réponses!
c'est tout à fait mon avis : google est mon ami!!!
sauf que tu trouves de tout et rien; et ce n'est qu'au détour d'une autre recherche que tu trouves ce que tu cherches depuis x semaines; mois ou années!
Merci en tout cas du temps consacré à me répondre!
Je me debrouille pas mal en vba; mais vbs est un peu nouveau pour moi!
Mais comme je dis toujours "aide toi et le ciel t'aidera..."
Toutefois un peu d'aide via des forums peu aider à "faire un grand pas..."
Merci en tout cas de ton aide!
Nicolas


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Récupérer valeur dir en vbs

 

Sujets relatifs
Récuperer plusieur $_POST dans une seul variable possible ??Quelle valeur récuperer dans mon batch ??
Récupérer la valeur "top" d'un div ?[RESOLU] JQuery appel ajax, récuperer la valeur d'une selectbox
Récupérer valeur d'un select en fonction de son idComment récupérer la valeur choisie dans <select> ou <option>?
Parser un flux XML en PHP pour récupérer une valeurrécupérer valeur avec $_post
sélecteur Jquery : récupérer une valeurRécupérer une valeur retournée par une fonction appellée par un event
Plus de sujets relatifs à : Récupérer valeur dir en vbs


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR