Fichier DOS - entrer date

Résolu/Fermé
sandul Messages postés 3924 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 - 1 déc. 2008 à 00:47
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 - 15 déc. 2008 à 19:56
Bonjour,

Je suis newbie dans le monde des fichiers de commande Windows; ce que je souhaiterais est un fichier qui:
1. recule la date système
2. lance une application
3. attend un certain temps
4. restaure la date système
5. sort

Le passage au point 3. se fait sans attendre la fin d'exécution de l'application lancée au point 2.

J'ai pensé à un truc du genre:
date 01-12-07
call monApplication.exe
ping 192.168.1.50
date 01-12-08

mais j'ai deux problèmes avec ce code:

1. la date de restauration est en dur (01-12-08) ==> je voudrais capturer la date système avant de la reculer pour pouvoir faire la restauration par la sute (à la dernière ligne)
2. l'attente est obtenue via un ping d'une adresse inexistante, mais j'imagine qu'il y a des moyens plus élégants pour faire ceci

D'avance merci pour votre aide.
A voir également:

5 réponses

cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
12 déc. 2008 à 01:47
Bonsoir,

- A ta place je ne modifierais pas la date système. Il doit y avoir un autre moyen.
Je présume que l'application, qui est appelée par un CALL utilise cette date système ? (à ce sujet si tu ne veux pas attendre la fin de l'exécution de cette appli. c'est un START qu'il faut coder) Si oui, pourquoi ne pas lui passer cette date dans un paramètre %n de l'ordre START précisément ?
remarque :
Le passage au point 3. se fait sans attendre la fin d'exécution de l'application lancée au point 2.
N'est-ce pas un peu hasardeux ? Que fait cette appli ? N'y-a-t-il pas danger au niveau d'une éventuelle interférence ?

- Pour sauvegarder la date système c'est simple :
set ddate= !date!
- En ce qui concerne le délai d'attente je ne connais sous Windows XP rien d'autre que ping, à moins de programmer une boucle d'attente bien sûr.
0
sandul Messages postés 3924 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 723
12 déc. 2008 à 01:59
Merci beaucoup, Christian !

Le passage au point 3. se fait sans attendre la fin d'exécution de l'application lancée au point 2.
N'est-ce pas un peu hasardeux ? Que fait cette appli ? N'y-a-t-il pas danger au niveau d'une éventuelle interférence ? <== l'appli en cause est un vidal qui ne veut plus fonctionner car il considère que les données ne seraient plus correctes (obsolètes)

Il fait bel et bien la vérification de la date système au démarrage. Je ne vois pas comment je pourrais lui passer cette date via un paramètre (pas mon appli, le vidal...) Le laisser quelques secondes démarrer, lire la date système (celle modifiée) et restaurer la date correctement (pour ne pas nuire aux autres applications)

Merci encore une fois, je vais essayer le set ddate= !date!

++
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
12 déc. 2008 à 02:13
Sois sympa de me tenir informé des résultats, ça m'intéresse.
0
sandul Messages postés 3924 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 723
12 déc. 2008 à 02:29
Ca marche en manuel (ou bien avec le fichier .bat de mon post initial).

J'ai essayé de le modifier pour utiliser un set ddate = !date! mais je ne réussis pas à le faire marcher...
Directement à la console, ça ne marche pas non plus. Si je fais par la suite un echo %ddate%, on m'affiche !date! et non la date réelle... Comme j'ai dit, je suis une nouille en DOS, faudra que je me penche sur le sujet un peu.

Peux-tu modifier le fichier bat pour avoir une version complète avec le comportement souhaité?

Merci encore,
++
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
12 déc. 2008 à 02:48

C'est parceque tu n'as pas ces commandes en tête de fichier :
SETLOCAL ENABLEdelayedExpansion
SETLOCAL ENABLEextensions

mets les, où bien programme :
set ddate=%date%

Je n'ai pas compris ta question :
Peux-tu modifier le fichier bat pour avoir une version complète avec le comportement souhaité?
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
12 déc. 2008 à 02:57
Bon là j'y vais au dodo, salut tout le monde, à demain, zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sandul Messages postés 3924 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 723
15 déc. 2008 à 09:59
Super, ça marche bien. Merci Christian !
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
15 déc. 2008 à 19:56
Bonsoir,

Merci pour le retour, bonne continuation.
0