Récupérer valeur dir en vbs - VB/VBA/VBS - Programmation
Marsh Posté le 17-06-2012 à 17:52:41
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
Marsh Posté le 17-06-2012 à 20:53:07
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" |
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???
Marsh Posté le 17-06-2012 à 22:45:05
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....
Marsh Posté le 18-06-2012 à 00:54:35
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. |
dreameddeath je t'adore! |
Marsh Posté le 17-06-2012 à 17:29:44
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