Page 1 sur 1

Watch Folder

Posté : 24 févr. 2011 13:21
par cnelson
Bonjour à tous
Je cherche à faire un "watch folder" c'est à dire que mon script surveille un dossier vide et quand on met un ou plusieurs fichiers dans ce dossier, ils sont traités par mon script.
J'ai pensé à faire une boucle infinie mais ça ne risque pas de prendre des ressources ?

merci de votre aide

Re: Watch Folder

Posté : 06 mars 2011 01:57
par Dodoche28
Bonjour cnelson :mrgreen:

:arrow: Ça dépend de plein de chose notamment de la config de ton PC, des programmes qui sont entrain d'être utilisé (la mémoire utilisé de la RAM) et la complexité de ton Batch.
Ça risque en effet de faire ramer un peu ton PC, surtout si tu fait exécuter au démarrage de ton PC ce Batch! :)

Re: Watch Folder

Posté : 07 mars 2011 12:53
par cnelson
Merci de ta reponse

Pas de solution... simple, pour faire un watch folder ?

Re: Watch Folder

Posté : 07 mars 2011 13:17
par plopi

Code : Tout sélectionner

schtasks
 

Code : Tout sélectionner

at
 


non ? c'est un tout petit moins lourd qu'une boucle infini à mon avis

Re: Watch Folder

Posté : 10 mars 2011 04:47
par scrunchs
Bonsoir,

j'ai un problème similaire au votre, et j'ai trouvé ceci qui devrait y répondre, sauf que je ne sais pas le mettre en oeuvre, si vous savez faire, dires moi ....

http://www.commandline.co.uk/lib/treeview/

Re: Watch Folder

Posté : 12 mars 2011 00:19
par Laddy
Bonjour
Robocopy.exe associé à une tache planifiée peut etre, ou cron.exe

Re: Watch Folder

Posté : 12 mars 2011 02:23
par Joe cateline
Bonjour cnelson,

Je débute dans ce domaine mais comme le dit Dodoche28, une boucle infini risque de faire ramer l'ordi...
Mais si on boucle seulement toutes les 2 ou 3 secondes au lieu de ~ 1900 fois par secondes pour une boucle classique cela n'aurait que pour effet d'attendre 2 ou 3 secondes maximum avant l'exécution de ton script mais je ne sais pas si la commande timeout, sleep ou ping fait elle aussi une boucle et donc ça reviendrait au même...

En espérant faire avancer le schmilblick, bon courage

Re: Watch Folder

Posté : 12 mars 2011 21:33
par Dodoche28
Bonjour :mrgreen:

Tu as raison "Joe cateline", faire un boucle toute les 2sec ne changera quasiment rien mais optimisera nettement la performence du pc :)

:geek: il suffit de mettre ce petit bout de code:

Code : Tout sélectionner

@echo off
:boucle
ping 0.0.0.0 -w 3000 >nul
set DISK=C:\Users\Utilisateur\Documents
setlocal ENABLEDELAYEDEXPANSION
for /F "tokens=3 delims= " %%a in ('dir /S "%DISK%" 2^>nul ^| findstr /E /L "octets" ') do (set TAILLE=%%a)
for /F "tokens=1,2,3* delims=ÿ" %%a in ("%TAILLE%") do (
set /a TAILLE_MO=%%a%%b%%c*10/10485
echo !TAILLE_MO! Mo
set /a taille_KO=!TAILLE_MO!*1024
IF "%taille_KO%"=="0" (goto :boucle) else (goto :TRAITEMENT)
)
endlocal
:TRAITEMENT
echo Traitement en cours...
:: .... le code ....
ping 0.0.0.0 -w 2000 >nul
 
:arrow: Bonne soirée a tous :)

Re: Watch Folder

Posté : 14 mars 2011 23:29
par plopi
Joli boucle Dodoche28 !!! :)

ou une autre méthode peut être, grâce au scheduler ? :

Code : Tout sélectionner

schtasks /create 
 
extrait de l'aide pour étayer un peu :

Code : Tout sélectionner


    ==> Crée une tâche planifiée "comptable" sur l'ordinateur distant
        "ABC" pour exécuter calc.exe toutes les cinq minutes entre
        l'heure de début et l'heure de fin spécifiées à partir de la date
        de début jusqu'à la date de fin.

        SCHTASKS /Create /S ABC /U domaine\utilisateur /P mot_passe
        /SC MINUTE
                 /MO 5 /TN comptable /TR calc.exe /ST 12:00 /ET 14:00
                 /SD 06/06/2006 /ED 06/06/2006 /RU nom_emprunt /RP
                 mot_de_passe_utilisateur