![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| Scripts/Batch Forum d'entraide sur la programmation de scripts Batch et Powershell sous Windows. |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Invité de passage
![]() Date d'inscription: novembre 2008
Messages: 7
|
Bonjour,
Je fais un petit batch Dos qui n'a besoin de s'exécuter qu'une fois par mois. Ce script est lancé au démarrage de la machine, par gpo, mais comment faire pour qu'il ne s'exécute qu'une fois dans une période donnée.(1 Mois ou 1 semaine) (Ex. si il se lance le 14.11 , il devra plus s'exécuter avant le 01.12) Merci pour votre aide Dernière modification par sianto ; 06/11/2008 à 10h00 |
|
|
|
|
|
#2 (permalink) |
|
Membre émérite
![]() Date d'inscription: janvier 2003
Localisation: Barcelona
Âge: 27
Messages: 803
|
Utilises les taches planifiées de Windows (Démarrer > Panneau de configuration)
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans l'éditeur de message. Pensez à la balise Tu t'ennuies ? - Fumer réduit vos chances d'être tué par Chuck Norris |
|
|
|
|
|
#5 (permalink) |
|
Membre éclairé
![]() Date d'inscription: mai 2004
Localisation: Grenoble, France
Messages: 356
|
Tu peux te crééer un fichier de log qui trace les mois d'execution effective de ton script.
Au lancement tu va lire ce fichier, si tu trouves le mois_annee courant tu quittes, sinon tu continues.
__________________
La crypto c'est comme les flambys, une fois que tu as trouvé la languette tu as juste à tirer pour tout faire tomber. (\ _ /) (='.'=) Voici Lapinou. Aidez le à conquérir le monde (")-(") en le reproduisant |
|
|
|
|
|
#7 (permalink) | |
|
Membre éprouvé
![]() Date d'inscription: janvier 2005
Localisation: /home/sloshy
Âge: 19
Messages: 499
|
Bonsoir,
Est-ce que la machine est lancées tous les jours? Si oui, il suffis de faire un test pour savoir si on est le 1er jour du mois. Sinon, il faut passer par un fichier exterieur pour savoir si le fichier a deja ete execute.
__________________
Citation:
|
|
|
|
|
|
|
#8 (permalink) |
|
Invité de passage
![]() Date d'inscription: novembre 2008
Messages: 7
|
Désolé de n'avoir pas répondu plus rapidement !!!
Pour Drizzt: Je comprend trés bien ce que vous voulez dire , mais suis incapable de le reproduire en batch. Effectivement , le script est lancé au démarrage de la machine, qui elle, démarre a peu prés tous les jours (saufWE). Mais ,c'est là le soucis, il faudrait que le script ne s'exécute qu'une fois dans le mois. Ex: Si le poste n'est démarrer que le 10,le script se lance mais ne le fera plus le reste du mois. J'espère que je vous explique bien ? Merci de votre aide |
|
|
|
|
|
#9 (permalink) |
|
Membre émérite
![]() Date d'inscription: janvier 2003
Localisation: Barcelona
Âge: 27
Messages: 803
|
Tu es obligé de le faire en batch? Ne peux-tu pas le faire en VBScript par exemple? Car en batch, je ne suis pas expert, mais je vois difficilement possible le fait de vérifier la date.
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans l'éditeur de message. Pensez à la balise Tu t'ennuies ? - Fumer réduit vos chances d'être tué par Chuck Norris |
|
|
|
|
|
#10 (permalink) | |
|
Membre éclairé
![]() Date d'inscription: mai 2004
Localisation: Grenoble, France
Messages: 356
|
Citation:
Code :
set strDate=%DATE:~-7% Ensuite deux options, soit tu as un joli fichier de log traçant toutes tes executions de script. Ou un seul fichier de log par mois pour l'unique execution du script. Je vais décrire la solution 2. Pour la solution 1 il faut parcourir le fichier de log à la recherche de l'execution du mois courant. Etape 2 : Vérification de l'existence du fichier de log et sortie le cas échéant. Code :
if EXISTS exec_script_%strDate%.log goto :exit Etape 3 : Le log n'existe pas, je vais donc lancer mon script. Ce dernier doit créer le log. Code :
echo Lancement mensuel du script pour le mois %strDate% > exec_script_%strDate%.log Code :
echo Blablabla >> exec_script_%strDate%.log Voila il y a peut être mieux, mais avoir un log est toujours bien lorsqu'on fait du script donc cette solution permet de t'en servir.
__________________
La crypto c'est comme les flambys, une fois que tu as trouvé la languette tu as juste à tirer pour tout faire tomber. (\ _ /) (='.'=) Voici Lapinou. Aidez le à conquérir le monde (")-(") en le reproduisant |
|
|
|
|
|
|
#12 (permalink) |
|
Invité de passage
![]() Date d'inscription: novembre 2008
Messages: 7
|
Non,
Décidément , je suis réfractaire au codage, malgré toute la bonne volonté Je ne comprend pas comment faire ce que j'ai expliqué au dessus Merci de votre patience .... Mais pour répondre à Muad'dib, le script en VBS , je prends . Merci Dernière modification par sianto ; 14/11/2008 à 11h59 |
|
|
|
|
|
#13 (permalink) | |
|
Membre éclairé
![]() Date d'inscription: mai 2007
Messages: 346
|
Salut tout le monde et bienvenue à toi sianto sur le forum.
Citation:
Code :
::####################################################################################
::Execute One Time in month (otm.cmd) by maxim_um for developpez.net/forums
::Info:
::¯¯¯¯
::Ce script n'est qu'un exemple, sans systèmes de test,
::sans gestions d'erreurs et sans optimisation particulière.
::Dans cette version simpliste, il ne fonctionne correctement
::qu'avec le format de date par défaut, c'est à dire jj/MM/aaaa
::le paramètre facultatif «/f» permet de forcer l'exécution du script
::la variable logpath représente le chemin du «dossier\» contenant le fichier log.
::enjoy;
::#####################################################################################
set logpath=
if not exist %logpath%otm.log (
echo ==== Fichier log généré le %date% à %time% ====
echo.)> %logpath%otm.log
if "%1"=="/f" goto runtask
for %%i in ("%logpath%otm.log") do set df=%%~ti
if not "%df:~3,2%"=="%date:~3,2%" goto runtask
goto fin
:runtask
::// ici les instructions à réaliser une fois par mois
::####################################################
::####################################################
::// fin des instructions.
echo exécuté le %date% à %time% >>%logpath%otm.log
goto :eof
:fin
__________________
. TOI!En ce jour de janvier, je profite de l'occasion et je te souhaite, ainsi qu'à tous les autres, de passer une bonne et heureuse année 2009! Sondages: [ Disque Dur. ] ► Serveur de fichiers [NAS] [OS alternatif] ► Connaissez-vous ReactOS ? |
|
|
|
|
|
![]() |
![]() |
||
lu tous les jours mais exécuté une seule fois par mois
|
||
| Outils de la discussion | |
|
|