IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Serveur Discussion :

Surveillance création de fichier


Sujet :

Windows Serveur

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Surveillance création de fichier
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Set objShell = CreateObject("Wscript.Shell")
    
    strComputer = "."
    
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    
    Set colMonitoredEvents = objWMIService.ExecNotificationQuery _
        ("SELECT * FROM __InstanceCreationEvent WITHIN 10 WHERE " _
            & "Targetinstance ISA 'CIM_DirectoryContainsFile' and " _
                & "TargetInstance.GroupComponent= " _
                    & "'Win32_Directory.Name=""c:\\\\TEST1""'")
    
    Do
        Set objLatestEvent = colMonitoredEvents.NextEvent
        strNewFile = objLatestEvent.TargetInstance.PartComponent
        arrNewFile = Split(strNewFile, "=")
        strFileName = arrNewFile(1)
        strFileName = Replace(strFileName, "\\", "\")
        strFileName = Replace(strFileName, Chr(34), "")
        objShell.Run("notepad.exe " & strFileName)
    Loop

    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

  2. #2
    Membre actif Avatar de zzzThibaut
    Inscrit en
    Février 2007
    Messages
    225
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Février 2007
    Messages : 225
    Points : 278
    Points
    278
    Par défaut
    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
    --------------------------------------------------------------------------
    For a moment, nothing happened. Then, after a second or so, nothing continued to happen.
    Thibaut CHARLIER

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    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.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  5. #5
    Membre actif Avatar de zzzThibaut
    Inscrit en
    Février 2007
    Messages
    225
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Février 2007
    Messages : 225
    Points : 278
    Points
    278
    Par défaut
    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
    --------------------------------------------------------------------------
    For a moment, nothing happened. Then, after a second or so, nothing continued to happen.
    Thibaut CHARLIER

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Au vu des tests que j'ai effectués, strFileName correspond au path plus le nom complet du fichier.

  7. #7
    Membre actif Avatar de zzzThibaut
    Inscrit en
    Février 2007
    Messages
    225
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Février 2007
    Messages : 225
    Points : 278
    Points
    278
    Par défaut
    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
    --------------------------------------------------------------------------
    For a moment, nothing happened. Then, after a second or so, nothing continued to happen.
    Thibaut CHARLIER

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    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)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Surveiller et lister la création de fichiers dans un répertoire
    Par remyclem dans le forum Développement de jobs
    Réponses: 4
    Dernier message: 07/06/2012, 14h24
  2. Surveiller Création de fichier
    Par Hawkwood dans le forum C#
    Réponses: 11
    Dernier message: 13/08/2009, 08h10
  3. surveillance répertoire pour création de fichier
    Par gerald2545 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 03/08/2006, 08h21
  4. création de fichiers .x
    Par Pazz dans le forum DirectX
    Réponses: 1
    Dernier message: 03/12/2002, 00h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo