Forum des développeurs  

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é.
Précédent   Forum des développeurs > Général Développement > Programmation Windows > Scripts/Batch

Scripts/Batch Forum d'entraide sur la programmation de scripts Batch et Powershell sous Windows.

Réponse
 
Outils de la discussion
Vieux 05/11/2008, 16h52   #1 (permalink)
Invité de passage
 
Date d'inscription: novembre 2008
Messages: 7
Par défaut lu tous les jours mais exécuté une seule fois par mois

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
sianto est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/11/2008, 17h01   #2 (permalink)
Membre émérite
 
Avatar de muad'dib
 
Date d'inscription: janvier 2003
Localisation: Barcelona
Âge: 27
Messages: 803
Par défaut

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
muad'dib est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/11/2008, 17h04   #3 (permalink)
Invité de passage
 
Date d'inscription: novembre 2008
Messages: 7
Par défaut

Merci pour ta réponse , mais cela aurait été trop simple .

Il faut que je le mette dans un script.
sianto est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/11/2008, 08h36   #4 (permalink)
Invité de passage
 
Date d'inscription: novembre 2008
Messages: 7
Par défaut

Petit éclaircissement, le script sera lu a chaque ouverture du poste.
Et il n'a besoin de s'executer qu'une fois par mois.

Merci de votre aide
sianto est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/11/2008, 18h10   #5 (permalink)
Membre éclairé
 
Avatar de Drizzt [Drone38]
 
Date d'inscription: mai 2004
Localisation: Grenoble, France
Messages: 356
Par défaut

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
Drizzt [Drone38] est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/11/2008, 10h20   #6 (permalink)
Nouveau membre du Club
 
Avatar de I'm_HERE
 
Date d'inscription: juillet 2008
Localisation: Tunisie
Messages: 77
Par défaut

Bonjour,

cherches de côté de la commande AT /? et pour plus d'options vous avez SCHTASKS /?
I'm_HERE est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 09/11/2008, 03h24   #7 (permalink)
Membre éprouvé
 
Avatar de sloshy
 
Date d'inscription: janvier 2005
Localisation: /home/sloshy
Âge: 19
Messages: 499
Par défaut

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:
Envoyé par sloshy
5² = 25 mais (-5)²=25 aussi
=> Ce n'est pas parce qu'on a une solution qu'elle est forcement la meilleure
sloshy est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 13/11/2008, 11h50   #8 (permalink)
Invité de passage
 
Date d'inscription: novembre 2008
Messages: 7
Par défaut

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
sianto est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 13/11/2008, 12h46   #9 (permalink)
Membre émérite
 
Avatar de muad'dib
 
Date d'inscription: janvier 2003
Localisation: Barcelona
Âge: 27
Messages: 803
Par défaut

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
muad'dib est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 13/11/2008, 13h00   #10 (permalink)
Membre éclairé
 
Avatar de Drizzt [Drone38]
 
Date d'inscription: mai 2004
Localisation: Grenoble, France
Messages: 356
Par défaut

Citation:
Envoyé par sianto Voir le message
Pour Drizzt: Je comprend trés bien ce que vous voulez dire , mais suis incapable de le reproduire en batch.
Etape 1 : Récupération de la date courante au format MM/YYYY:
Code :
set strDate=%DATE:~-7%
Attention, cela dépend de tes paramètres régionaux, il te faudra peut etre adapter cette ligne.

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
(Sans oublier de mettre l'étiquette :exit en fin de fichier )

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
Etape 4 : Facultative, tu as un beau log, autant t'en servir, tu peux ajouter des traces à ton script.
Code :
echo Blablabla  >> exec_script_%strDate%.log
Attention on utilise ici >> et non >

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
Drizzt [Drone38] est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 13/11/2008, 14h01   #11 (permalink)
Invité de passage
 
Date d'inscription: novembre 2008
Messages: 7
Par défaut

Je vous remercie vivement pour ces renseignements.

Je m'en vais les mettre en applications, et je vous en ferais un retour.
sianto est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 13/11/2008, 15h31   #12 (permalink)
Invité de passage
 
Date d'inscription: novembre 2008
Messages: 7
Par défaut

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
sianto est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 14/11/2008, 22h37   #13 (permalink)
Membre éclairé
 
Date d'inscription: mai 2007
Messages: 346
Par défaut

Salut tout le monde et bienvenue à toi sianto sur le forum.

Citation:
Envoyé par sianto Voir le message
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
Considères ce qui suit comme un coup de pouce bien mérité, ce qui bien entendu ne t'empêche pas d'en apprendre plus sur ce "langage" grâce aux différentes ressources disponibles sur ce même site et forum.

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
Bonne continuation à toi.
__________________
.
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 ?
maxim_um est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 17/11/2008, 09h08   #14 (permalink)
Invité de passage
 
Date d'inscription: novembre 2008
Messages: 7
Par défaut

Merci beaucoup maxim_um

Je vais le mettre en place et tenter de bien le faire fonctionner
sianto est déconnecté   Envoyer un message privé Réponse avec citation
NEWS AUTRESAdaAlgoAssembleurBasicCobolFortranLaTeXMATLABPascalPerlPrologPurebasicRéseauRubySystèmesXMLRAD

Réponse

Précédent   Forum des développeurs > Général Développement > Programmation Windows > Scripts/Batch



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide