Je dois exécuter un programme.exe qui me génère des rapports pour une gamme de dates, j'appelle le programme.exe dans une ligne de commande mais je dois définir deux arguments (date actuelle et current_date- 6 jours) quand je l'appelle:Windows Ligne de commande obtenir la date
c:\program.exe current_date current_date-6 (date before 6 days)
je trouve que cette commande me donne la date actuelle: 28-06-2013 %date:~0,2%-%date:~-7,2%-%date:~-4,4%
mais je ne peux pas obtenir le current_date -6 (signifie la date 6 jours avant)
Je dois aussi laisser l'utilisateur choisir la plage de date où il veut ...
comment je peux procéder à l'exécution du programme 1) automatiquement (fenêtres schedular) en lui donnant les deux paramètres (date actuelle et la date de 6 jours avant par exemple) 2) et manuellement dans le même temps, en donnant aux utilisateurs la possibilité de choisir une plage de dates
@echo off
set /a currd=%date:~0,2%
set /a currm=%date:~3,2%
set /a curry=%date:~6,4%
set /a d=%date:~0,2%
set /a m=%date:~3,2%
set /a y=%date:~6,4%
FOR %%A IN (1 2 3 4 5 6) DO (
:loop
set /a d-=1
if %d% LSS 1 (
set d=1
set /a m-=1
if %m% LSS 1 (
set m=12
set /a y-=1
)
)
xcopy /d:%m%-%d%-%y% /l . .. >nul 2>&1 || goto loop
)
start /WAIT /B "" "C:\MyPGM.exe" "%d%-%m%-%y%" "%currd%-%currm%-%curry%"
pour le 28/06/2013 je n'ai pas de problème mais pour le 01/07/2013 il me génère une erreur "String was non reconnu en tant que DateTime valide "
1) ce '% date: ~ 0,2 (-6)%' ne fonctionne pas pour moi. Voulez-vous dire «% date: ~ 0,2%»? 2) que voulez-vous dire par 'currend_date-6'? 3) s'il vous plaît spécifier votre format de date (la sortie de 'echo% date%'. – Endoro
Pourquoi n'avez-vous pas le programme que vous avez codé simplement accepter une date, et calculer le 'current_date - 6 jours' de cela? faites cela plutôt que de le faire dans un fichier batch (si c'est toujours le current_date, le fichier batch n'a même pas besoin de le passer, votre exe peut l'obtenir quand il est lancé, donc le fichier batch doit juste le démarrer.) –
Ouais, ce que Ken a dit Si l'exe commence toujours avec la date actuelle, peut-être que le seul paramètre passé est votre décalage (6 dans ce cas) .Vous voulez l'exécuter deux fois par semaine? au lieu de tous les jours, et passez dans 13 au lieu de 6. – railsdog