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

Scripts/Batch Discussion :

batch de recherche de fichier ...


Sujet :

Scripts/Batch

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2002
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 19
    Points : 11
    Points
    11
    Par défaut batch de recherche de fichier ...
    Bonjour,

    Je ne sais pas si je suis vraiment sur le bon forum mais je préfère tenter ma chance tout de même.
    Je voudrais créer un batch qui vérifie dans un dossier donné s'il y a eu ajout de nouveaux fichiers (de format DLIV*) dans les n dernières heures. Et si ce n'est pas le cas, qui envoie une alerte (type NET SEND ?!?) sur un poste donné.

    Je n'arrive pas à savoir la fonction à utiliser pour la recherche et forcément comment la paramétrer. Quelqu'un a-t-il une idées, des suggestions ? Je suis preneuse de toute idée sur le sujet. Merci à tous !
    @+.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    pour tester l'existance d'un fichier :
    IF [NOT] EXIST filename command
    peut etre en faisant
    IF EXIST cheminDossier\*.ext NET SEND
    Mais je ne sais pas comment avoir la date de création de fichier avec un batch

  3. #3
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Le mieux est d'utiliser WMI avec WSH qui répond exactement à ton problème.
    En batch c'est possible mais il y auras pas mal de contrainte, notamment pour la scrutation du répertoire à interval régulier .

    Mais quel est le contexte exactement ?

    Un début de solution :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Temporary event consumer that issues an alert any time the file C:\Scripts\Index.vbs is modified. Best when run under Cscript.exe.
    
     
    
    Supported Platforms
    Windows Server 2003 Yes
    
    Windows XP Yes
     
    Windows 2000 Yes
     
    Windows NT 4.0  Yes, with WMI installed
     
    Windows 98 Yes, with WMI installed
      
    
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & _
            strComputer & "\root\cimv2")
    
    Set colMonitoredEvents = objWMIService.ExecNotificationQuery _
        ("SELECT * FROM __InstanceModificationEvent WITHIN 10 WHERE " _
            & "TargetInstance ISA 'CIM_DataFile' and " _
                & "TargetInstance.Name='c:\\scripts\\index.vbs'")
    
    Do
        Set objLatestEvent = colMonitoredEvents.NextEvent
        Wscript.Echo "File: " & objLatestEvent.TargetInstance.Name
        Wscript.Echo "New size: " & objLatestEvent.TargetInstance.FileSize
        Wscript.Echo "Old size: " & objLatestEvent.PreviousInstance.FileSize
    Loop
    Script synchrone, scrute les modif sur UN fichier toutes les 10 secondes.
    Pour ton pb la requête WQL doit être modifié...

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2002
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Le contexte est le suivant : J'ai une application qui crée des fichiers automatiquement. Et pour savoir si l'application n'a pas planté, je voudrais vérifier à intervalle régulier qu'il y a eu au moins une création de fichier commançant par DLIV suivi d'un numéro dans les 4 dernières heures.
    Je pense que lancer régulièrement un batch qui envoie une alerte sur un poste s'il n'y a pas eu de nouveaux fichiers représentent une solution fiable et simple (sauf que je n'ai jamais fait de batch !!! )
    Et voilou pour la petite histoire.
    Pour ton début de solution, je ne suis pas sûre que ça réponde à mon besoin dans le sens où il s'agit de création de fichier + je ne connais pas le nom complet du(/des) fichier(s).
    @+.

  5. #5
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Félia
    Pour ton début de solution, je ne suis pas sûre que ça réponde à mon besoin dans le sens où il s'agit de création de fichier + je ne connais pas le nom complet du(/des) fichier(s).
    Mais tu connais le nom du directory.
    Il faut utiliser la classe Win32_Directory et l'événement __InstanceCreationEvent.

    Ce qui donne qq chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    "SELECT * FROM __InstanceCreationEvent WITHIN 300 WHERE  "TargetInstance ISA 'CIM_DataFile' and  "TargetInstance.Name='c:\\scripts\\directoryName'"
    Mais si tu utilises Delphi comme j'ai pu le comprendre dans tes anciens msg, tu peux utiliser WMI sans batch ou utiliser une autre solution proposé dans la rubrique sources de Delphi.

  6. #6
    Membre à l'essai
    Inscrit en
    Mars 2002
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Ok, je vais essayer ta solution avec l'évènement __InstanceCreationEvent. Je te tiens au courant.

    Par contre, pour information, je ne fais plus de développement du tout et donc plus de Delphi. En effet, j'ai changé de boulot. Je me contente de faire beaucoup de requête SQL.
    Là, c'est juste pour m'aider à surveiller mon application et comme, je n'ai aucun outil de dév ...

    Merci et @+.

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

Discussions similaires

  1. [batch] Comment rechercher deux mots dans un fichier .txt ?
    Par koKoTis dans le forum FAQs Windows
    Réponses: 0
    Dernier message: 10/02/2009, 17h54
  2. [batch] recherche de fichier sur different lecteurs
    Par dmichel dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 15/12/2008, 12h11
  3. Batch de recherche de fichiers
    Par zorglub67 dans le forum Windows
    Réponses: 5
    Dernier message: 03/01/2007, 09h37
  4. Recherche support fichier
    Par sydiop dans le forum Informix
    Réponses: 5
    Dernier message: 18/03/2004, 10h15
  5. Batch pour copier des fichier
    Par borgfabr dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 09/03/2004, 07h55

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