|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : mars 2007 Messages : 5 ![]() |
Bonjour,
Je veux créer une tâche qui surveille un répertoire dans lequel arrivent régulièrement des fichiers. Lorsqu'un type de fichier en particulier arrive, cette tâche doit effectuer une action sur ce fichier. Le type de fichier est repéré par son nom qui commence toujours avec la même chaine de caractères (par exemple file****). J'utilise un programme qui s'appuie sur WMI dont voici le code : Code :
Le répertoire surveillé est "c:\test1", pour l'instant l'action déclenchée par l'arrivée du fichier est l'ouverture du dit fichier avec le notepad. Cela fonctionne, sauf que je n'arrive pas à déclencher l'action sur un nom particulier de fichier, pour l'instant tout fichier quelque soit son nom déclenche l'action. Pouvez-vous m'indiquer comment déclencher l'action sur un nom de fichier en particulier (plus précisement le début du nom, je ne connais jamais la fin). Par avance merci de votre aide |
||
|
|
00
|
|
|
#2 |
|
Membre confirmé
![]() Inscription : février 2007 Messages : 223 ![]() |
Bonjour
Il semble que tu récupères le nom du fichiers dans la variable strFileName. Si c'est bien le cas, un simple if avant d'executer la tache associée (ici ouverture de notepad) devrait suffir à vérifier le nom di fichier. Vu la script que tu as écrit, je suis étonné que tu n'aies pas remarqué cela zzzThibaut |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mars 2007 Messages : 5 ![]() |
Bonjour zzzThibault
Tout d'abord merci pour ta réponse. Quant à ton étonnement, ne le soit plus, je n'ai pas écrit ce script j'ai fait quelques recherches et me suis dit à juste titre que celui-ci devrait m'approcher pas mal du but. Je n'ai malheureusement pas de compétenses en développement! Cela dit, pour avoir effectuer quelques recherches sur les sites spécialisés, j'y ai trouvé un grand intérèt et commence à m'autoformer. Paris ne s'est pas construit en un jour et il me faudra encore quelques heures de littérature avant de pouvoir être bombardé "développeur" même amateur. Etant pressé par le temps, c'est la raison pour laquelle j'ai posté ce sujet. Tu as raison, je récupère le nom du fichier dans la variable strFileName, il reste un petit souci que mon état d'avancement dans ma "formation" n'a pu me permettre de résoudre. J'utilise IF mais ne parviens pas à n'évaluer que le début du nom de fichier (seule partie que je connaisse), je n'ai pas trouvé la syntaxe permettant d'utiliser les caractère génériques If strFileName="nom_fichier_complet" Then action l'action s'exécute si je précise le path complet du fichier, il faudrait une condition par fichier créé, ce qui n'est pas possible. If strFileName="nom_fichier_partiel*.*" Then action Pas d'erreur au lancement du programme, mais l'action ne s'exécute pas lorsqu'un fichier, dont le début du nom correspond à la valeur testée, arrive dans le répertoire. Je suppose que je devrais utiliser une condition de type "content" à la place du signe "=" ? Si quelqu'un est inspiré merci par avance. |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : mars 2007 Messages : 5 ![]() |
Bonjour zzzThibault
Tout d'abord merci pour ta réponse. Quant à ton étonnement, ne le soit plus, je n'ai pas écrit ce script j'ai fait quelques recherches et me suis dit à juste titre que celui-ci devrait m'approcher pas mal du but. Je n'ai malheureusement pas de compétenses en développement! Cela dit, pour avoir effectuer quelques recherches sur les sites spécialisés, j'y ai trouvé un grand intérèt et commence à m'autoformer. Paris ne s'est pas construit en un jour et il me faudra encore quelques heures de littérature avant de pouvoir être bombardé "développeur" même amateur. Etant pressé par le temps, c'est la raison pour laquelle j'ai posté ce sujet. Tu as raison, je récupère le nom du fichier dans la variable strFileName, il reste un petit souci que mon état d'avancement dans ma "formation" n'a pu me permettre de résoudre. J'utilise IF mais ne parviens pas à n'évaluer que le début du nom de fichier (seule partie que je connaisse), je n'ai pas trouvé la syntaxe permettant d'utiliser les caractère génériques Code :
If strFileName="nom_fichier_complet" Then action Code :
If strFileName="nom_fichier_partiel*.*" Then action Je suppose que je devrais utiliser une condition de type "content" à la place du signe "=" ? Si quelqu'un est inspiré merci par avance. |
|
|
00
|
|
|
#5 |
|
Membre confirmé
![]() Inscription : février 2007 Messages : 223 ![]() |
strFileName c'est le nom de ton fichier, la nom du Path ou le nom du path suivi par le nom du fichier ?
Fait des recherche sur la fonction substr qui t'indiquera si une chaine de caractère est inclue dans une autre. Je ne te donne pas la solution tout de suite car c'est en forgeant que l'on devient forgeron. zzzThibaut |
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : mars 2007 Messages : 5 ![]() |
Au vu des tests que j'ai effectués, strFileName correspond au path plus le nom complet du fichier.
|
|
|
00
|
|
|
#7 |
|
Membre confirmé
![]() Inscription : février 2007 Messages : 223 ![]() |
Je me suis trompé c'est pas substr mais instr que tu dois utiliser comme fonction pour savoir si tu as un fichier qui commence avec une certaine chaine de caractère.
Voici un lien qui pourra t'aider zzzThibaut |
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : mars 2007 Messages : 5 ![]() |
Salut zzzThibault
Merci pour tes conseils, j'ai testé INSTR et ça fonctionne bien, je parviens à mettre une condition sur un caractère contenu dans le nom. Voici la syntaxe que j'ai employée variabl_caract_recherch = Instr(13,strFileName,"o",1) if variabl_caract_recherch = 15 then objShell.Run("notepad.exe " & strFileName) |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com