[VBS] Attente d'un fichier

Attente d'un fichier [VBS] - VB/VBA/VBS - Programmation

Marsh Posté le 14-05-2010 à 12:05:33    

Bonjour,
 
J'ai un script .VBS qui me lance un chargement de donnée à partir de 3 fichiers. Il faudrait que ce script se lance automatiquement à la réception des fichiers dans un répertoire particulier.
 
Est-il possible de rajouter une ligne de commande au début du script qui attendrait la présence de ces fichiers ?
 
Sachant que cela va à terme devoir être mis en place sur une dizaine de procédures de chargement durant chacune 2 à 4 heures.
 
Je ne connais absolument rien au vbs... La moindre aide me serait très utile!
 
Merci d'avance

Reply

Marsh Posté le 14-05-2010 à 12:05:33   

Reply

Marsh Posté le 14-05-2010 à 17:18:05    

Je ne crois qu'il y ait de solution très simple.
 
Par exemple, on peut avoir une boucle et tester si un fichier existe FileExists :

 Set fso = CreateObject("Scripting.FileSystemObject" )
  If (fso.FileExists(filespec)) Then
    msg = filespec & " existe."
  Else
    msg = filespec & " n'existe pas."
  End If


Ou bien on peut faire :

sPath = "\\Server\Drive$\Folder1\Folder2\Folder3"  
sComputer = split(sPath,"\" )(2)  
sDrive = split(sPath,"\" )(3)  
sDrive = REPLACE(sDrive, "$", ":" )  
sFolders = split(sPath,"$" )(1)  
sFolders = REPLACE(sFolders, "\", "\\" ) & "\\"  
Set objWMIService = GetObject("winmgmts:\\" & sComputer & "\root  
\cimv2" )  
Set colMonitoredEvents = objWMIService.ExecNotificationQuery _  
    ("SELECT * FROM __InstanceOperationEvent WITHIN 1 WHERE " _  
        & "TargetInstance ISA 'CIM_DataFile' AND " _  
         & "TargetInstance.Drive='" & sDrive & "' AND " _  
          & "TargetInstance.Path='" & sFolders & "'" )  
Wscript.Echo vbCrlf & Now & vbTab & _  
 "Begin Monitoring for a Folder Change Event..." & vbCrlf  
Do  
  Set objLatestEvent = colMonitoredEvents.NextEvent  
  Select Case objLatestEvent.Path_.Class  
  Case "__InstanceCreationEvent"  
    WScript.Echo Now & vbTab & objLatestEvent.TargetInstance.FileName  
_  
     & " was created" & vbCrlf  
  Case "__InstanceDeletionEvent"  
    WScript.Echo Now & vbTab & objLatestEvent.TargetInstance.FileName  
_  
     & " was deleted" & vbCrlf  
  Case "__InstanceModificationEvent"  
    If objLatestEvent.TargetInstance.LastModified <> _  
     objLatestEvent.PreviousInstance.LastModified then  
      WScript.Echo Now & vbTab &  
objLatestEvent.TargetInstance.FileName _  
       & " was modified" & vbCrlf  
    End If  
    IF objLatestEvent.TargetInstance.LastAccessed <> _  
     objLatestEvent.PreviousInstance.LastAccessed then  
      WScript.Echo Now & vbTab &  
objLatestEvent.TargetInstance.FileName _  
       & " was accessed" & vbCrlf  
    End If  
  End Select  
Loop  
Set objWMIService = nothing  
Set colMonitoredEvents = nothing  
Set objLatestEvent = nothing


Reply

Marsh Posté le 14-05-2010 à 18:08:19    

Partons sur la solution 1 (étant donné que je ne comprend rien du tout à la deuxième....)
Est-il possible de faire ce test toutes les 60minutes tant que les fichiers n'existe pas ?
 
Merci beaucoup

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed