Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2151 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Résolu] - [Batch Dos] créer un tache planifiée J+3

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] - [Batch Dos] créer un tache planifiée J+3

n°1793743
dob2806
Posté le 30-09-2008 à 10:28:57  profilanswer
 

Bonjour à tous,
 
j'aimerai créer un script que me créé une tache planifiée 3 jours apres avoir executer ce script.
 
j'essaye de variabliser la commande date /T mais je n'y arrive pas.
 
voici mon bout de script concernant l'ajout de tache planifiée.
 

Code :
  1. schdtasks /tn modif-password-ad /tr modif-password-ad.cmd /sc ONCE /sd /st 18:15:00 /ru /rp 1234


 
si quelqu'un pouvais m'aider.
 
Merci.
 
Dob.


Message édité par dob2806 le 09-10-2008 à 16:39:53
mood
Publicité
Posté le 30-09-2008 à 10:28:57  profilanswer
 

n°1793775
theshockwa​ve
I work at a firm named Koslow
Posté le 30-09-2008 à 11:10:47  profilanswer
 

schdtasks ?

n°1793783
dob2806
Posté le 30-09-2008 à 11:16:01  profilanswer
 

il me semble utiliser cette commande  :D   :D  :D  
 
ce que je souhaite c'est lui dire c'est une seule fois dans 3 jours à compter d'aujourd'hui (quand je lance le script).

n°1793793
theshockwa​ve
I work at a firm named Koslow
Posté le 30-09-2008 à 11:28:59  profilanswer
 

Tu utilises quel OS ?
Le .cmd de ta ligne de commandes semble indiquer que c'est du Windows, mais sur mon XP Pro, je n'ai pas d'utilitaire schdtasks. Pour planifier des tâches, je passe par la commande "at", mais les arguments n'ont rien à voir (et ce schdtasks a l'air diablement plus pratique que at)

n°1793798
dob2806
Posté le 30-09-2008 à 11:33:24  profilanswer
 

windows serveur 2003

n°1793806
MagicBuzz
Posté le 30-09-2008 à 11:43:44  profilanswer
 

existe pas sous vista, peut pas tester :spamafote:

n°1793819
theshockwa​ve
I work at a firm named Koslow
Posté le 30-09-2008 à 11:54:28  profilanswer
 

peut-être pourrais-tu nous décrire le comportement que tu as (éventuel message d'erreur) et nous donner une copie de ce que te sort un "schdtasks /?"

n°1793885
dob2806
Posté le 30-09-2008 à 14:20:29  profilanswer
 

le schdtask fonctionne parfaitement c'est juste que je ne peux que lui dire /sc TODAY+3

n°1793889
MagicBuzz
Posté le 30-09-2008 à 14:28:14  profilanswer
 

et tu peux copier un schdtasks /? ici ?


Message édité par MagicBuzz le 30-09-2008 à 14:29:44
n°1793891
dob2806
Posté le 30-09-2008 à 14:32:58  profilanswer
 
mood
Publicité
Posté le 30-09-2008 à 14:32:58  profilanswer
 

n°1793897
theshockwa​ve
I work at a firm named Koslow
Posté le 30-09-2008 à 14:50:38  profilanswer
 

ok, schtasks, là, je l'ai aussi, donc ta ligne plus haut est fausse (vu qu'acessoirement, il te manque aussi le /CREATE, il me semble)
 
Ce serai possible que tu nous copie exactement ce que tu tentes de faire ?

n°1793904
MagicBuzz
Posté le 30-09-2008 à 15:01:19  profilanswer
 

après une tentative foirée de :

Code :
  1. set /a test=%DATE%+3


 
J'ai dû me rendre à l'évidence, le langage Batch ne sais pas manipuler des dates, ou en tout cas pas aussi simplement.
 
Par contre j'ai trouvé ça :
http://www.developpez.net/forums/d [...] tes-batch/
 
En gros, tu reprends son truc pour calculer la bonne date, et ensuite t'as juste à coller la variable calculée en paramètre.


Message édité par MagicBuzz le 30-09-2008 à 15:01:32
n°1793931
dob2806
Posté le 30-09-2008 à 16:22:06  profilanswer
 

bon pour faire simple sans se prendre la tete avec la gestion des jours/mois je lancerai le script en cours de moi et avant la fin du moi-3 jours .
 
J'ai donc ca qui fonctionne mais je n'arrive pas a ajouter +3 a ma variable jouri !!
 

Code :
  1. for /f "tokens=1,2,3 delims=/" %%i in ('date/T') do (
  2. set jouri=%%i
  3. set moisi=%%j
  4. set anni=%%k
  5. )
  6. Echo %jouri%/%moisi%/%anni%
  7. pause


Message édité par dob2806 le 30-09-2008 à 16:22:59
n°1793934
dob2806
Posté le 30-09-2008 à 16:27:25  profilanswer
 

Code :
  1. for /f "tokens=1,2,3 delims=/" %%i in ('date/T') do (
  2. set jour=%%i
  3. set mois=%%j
  4. set anne=%%k
  5. )
  6. set /A jour3=%jour%+3
  7. Echo %jour3%/%mois%/%anne%
  8. pause


 
voila reste plus qu'a l'inserer dans schtask...
 


Message édité par dob2806 le 30-09-2008 à 16:31:04
n°1793937
MagicBuzz
Posté le 30-09-2008 à 16:28:29  profilanswer
 

ben quoi, c'est bien le 33 septembre :D

n°1793938
dob2806
Posté le 30-09-2008 à 16:30:26  profilanswer
 

:D  :D  :D
 
PS: aujourd'hui cela ne focntionne forcement pas .... avec un if y a t'il moyen de faire quelque chose de plus simple que ce qu'il y a dans le lien donné aimablement par magibuzz ?


Message édité par dob2806 le 30-09-2008 à 16:32:49
n°1793945
MagicBuzz
Posté le 30-09-2008 à 16:43:09  profilanswer
 

malheureusement, oui, y'a toujours plus simple. mais qui marche tout le temps, non.
 
par contre, tu peux rajouter un simple if %jour% > 25
et à ce moment coller direct le 3 du %mois%+1 (si évidement %mois% < 12) sinon faut aussi faire un %annee%+1 ;)
 
bon, c'est très loin d'être parfait par contre, puisque le test > 25 garanti que ça plantera pas au mois de février, mais des fois ça lancera le script 8 jours plus tard au lieu de 3... (on peut pas tout avoir ^^)


Message édité par MagicBuzz le 30-09-2008 à 16:44:11
n°1793950
theshockwa​ve
I work at a firm named Koslow
Posté le 30-09-2008 à 16:52:27  profilanswer
 

juste à titre de rappel, si c'est un besoin critique, tu te prendras sans doute moins la tête en passant par un autre langage de script.
 
Après, si batch te suffit dans ce cas précis, je n'ai rien à redire.

n°1793957
MagicBuzz
Posté le 30-09-2008 à 17:02:23  profilanswer
 

surtout, j'espère que c'est pas le même programme qui doit se replanifier tous les 3 jours, parceque sinon le planificateur de tâche gère ça très bien et sans besoin d'indiquer de date ;)


Message édité par MagicBuzz le 30-09-2008 à 17:02:39
n°1793960
dob2806
Posté le 30-09-2008 à 17:03:27  profilanswer
 

c'est un script qui se lance deux à trois fois par ans et c'est une demande et j'essaie tant bien que mal d'y repondre  :D


Message édité par dob2806 le 02-10-2008 à 11:32:29
n°1793986
dob2806
Posté le 30-09-2008 à 17:49:49  profilanswer
 

sinon quelqu'un sait pourquoi ce scritp ne fonctionne pas ?
 

Code :
  1. rem le nombre d jours est passé en paramètre du batch = %1=periode
  2. for /f "tokens=1,2,3 delims=/" %%i in ('date/T') do (
  3. set jouri=%%i
  4. set moisi=%%j
  5. set ani=%%k
  6. )
  7. set periode=%1
  8. if %moisi:~0,1% EQU 0 set moisi=%moisi:~1,1%
  9. if %jouri:~0,1% EQU 0 set jouri=%jouri:~1,1%
  10. set /a diffperiode=(%moisi%*30)+%jouri%
  11. echo debut annee %diffperiode%
  12. set /A difannee=%periode%/365
  13. set /A ani=%ani%-%difannee%
  14. echo %difannee% ; %ani%
  15. set /a difjour=%periode%-(%difannee%*365)
  16. if %diffperiode%  LSS %difjour% goto rattrapagemois
  17. set /a moisref=%difjour%/30
  18. echo %moisref%
  19. set /a moisi=%moisi%-%moisref%
  20. echo %moisref% ; %moisi%
  21. set /a jourref=%difjour%-(%moisref%*30)
  22. echo %jourref%
  23. if %jourref% GTR %jouri% (
  24. set /a moisi=%moisi%-1
  25. set jouri=%jourref%-%jouri%
  26. ) ELSE (
  27. set /a jouri=%jouri%-%jourref%
  28. )
  29. echo %jourref% ; %jouri%
  30. goto fin
  31. :rattrapagemois
  32. set /A ddif=%difjour%-%diffperiode%
  33. set /A ani=%ani%-1
  34. set /A diffmois=%ddif%/30
  35. echo %diffmois%
  36. echo %ddif%
  37. echo %difjour%
  38. set /a moisi=12-%diffmois%
  39. echo %moisi%
  40. set /A diffjour=%ddif%-(%diffmois%*30)
  41. set /a jouri=%jouri%-%diffjour%
  42. echo %jouri%
  43. :fin
  44. rem on arrive avec %ani% , %moisi% et %jouri% 
  45. rem qui sont les jour mois et année compte tenu du cécalage de la période
  46. rem on peut affiner, je suis parti du principe qu'un mois fait 30 jours

n°1797858
dob2806
Posté le 09-10-2008 à 16:37:11  profilanswer
 

bon Voila la solution (avec l'aimable participation et resolution :D de magma² sur www.developpez.com)
 

Code :
  1. REM ---------------------------------------------------------------------------
  2. REM DEFINITION DE JOUR D'EXECUTION J+3
  3. REM ---------------------------------------------------------------------------
  4. @echo off
  5. set /a NJ=3
  6. set /a J=1%DATE:~0,2% - 100
  7. set /a M=1%DATE:~3,2% - 100
  8. set /a A=%DATE:~6,4%
  9. set /a JJ=%NJ% + ((1461 * (%A% + 4800 + (%M% - 14) / 12)) / 4 + (367 * (%M% - 2 - 12 * ((%M% - 14) / 12))) / 12 - (3 * ((%A% + 4900 + (%M% - 14) / 12) / 100)) / 4 + %J% - 32075)
  10. set /a T0=%JJ% + 68569
  11. set /a T1=(4 * %T0%) / 146097
  12. set /a T0=%T0% - (146097 * %T1% + 3) / 4
  13. set /a T2=(4000 * (%T0% + 1)) / 1461001
  14. set /a T0=%T0% - (1461 * %T2%) / 4 + 31
  15. set /a T3=(80 * %T0%) / 2447
  16. set /a J=%T0% - (2447 * %T3%) / 80
  17. set /a M=%T3% + 2 - (12 * (%T3% / 11))
  18. set /a A=100 * (%T1% - 49) + %T2% + (%T3% / 11)
  19. if %J% LSS 10 set J=0%J%
  20. if %M% LSS 10 set M=0%M%
  21. echo.
  22. echo Dans 3 jours nous serons le %J%/%M%/%A%
  23. echo.
  24. REM ---------------------------------------------------------------------------
  25. REM PLANIFICATION DU SCRIPT DE CHANGEMENT DE MOT DE PASSE DANS 3 JOURS
  26. REM ---------------------------------------------------------------------------
  27. schtasks /delete /tn modif-password-ad /F
  28. schtasks /create /tn modif-password-ad /tr %cd%\modif-password-ad.cmd /sc once /sd %J%/%M%/%A% /st 00:01:00 /ru DOMAIN\administrateur /rp password


Message édité par dob2806 le 09-10-2008 à 16:41:03
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Résolu] - [Batch Dos] créer un tache planifiée J+3

 

Sujets relatifs
[résolu] [php] Générer une miniature à partir d'une image ?connexion distante à une bdd [résolu]
[batch] Raccourci "spécial" avec la commande "shortcut"[Résolu] Manipulation de dates par FILETIME et SYSTEMTIME
[Résolu]-[BATCH DOS] modification Mot De Passe dans l'Active Directory[Résolu]Petite question trés simple pour comparaison entre deux chaine
[Résolu] Problème avec une boucleParcourir un répertoire (Résolu)
Plus de sujets relatifs à : [Résolu] - [Batch Dos] créer un tache planifiée J+3


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR