batch lecture fichier temps réel

batch lecture fichier temps réel - Shell/Batch - Programmation

Marsh Posté le 24-05-2023 à 08:14:26    

Bonjour,
 
je suis novice en programmation et je travaille dans le milieu des systèmes d'informations géographiques.
J'ai créé un batch qui enclenche l'ouverture d'un fichier lu par le programme FME. L'idée est de le lancer régulièrement avec le planificateur winows. FME écrit un fichier log pendant l'éxécution du programme et je souhaiterais fermer celui-ci lorsque le log indique que l'exécution est finie (il faut environ 2 min). Pour le moment, j'ai marqué une pause de 5 min dans le script mais par curiosité et pour aller un peu plus loin, je souhaiterais que le programme se ferme lorsque le script détecte un mot de la fin du fichier log qui se modifie pendant l'exécution du programme. Est-il possible que le script lise le fichier log en permanence, qui est en cours d'écriture, et qu'il exécute la tâche de fermeture quand il a trouvé un mot précis (ici: END - ProcessID)?
Mon code:
 
@echo off
start /B /MIN C:\toto\titi\programme.fme /
timeout /t 300
taskkill /f /im fmequicktranslator.exe
exit
 
Merci d'avance pour vos retours,

Reply

Marsh Posté le 24-05-2023 à 08:14:26   

Reply

Marsh Posté le 24-05-2023 à 17:43:04    

C'est certainement possible, mais en batch tu vas t'amuser... En Python p.ex. ça devrait être plus facile. Au mieux on dit à FME (connais pas) de ne pas écrire dans un fichier mais d'envoyer les infos directement à p.ex. Python.
 
Après je ne comprend pas trop l'intérêt, à part un bug dans FME qui fait que le logiciel ne se ferme pas quand il a terminé?? Il n'y a pas une option pour modifier ça?


---------------
Si vous ouvrez un sujet merci de ne pas le "laisser mourir" subitement et de le marquer comme "résolu" le cas échéant!
Reply

Marsh Posté le 30-05-2023 à 15:28:19    

Bonjour,
 
merci pour le retour, j'ai finalement contourné la chose avec une option du logiciel FME que j'utilise.

Reply

Sujets relatifs:

Leave a Replay

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