Bonjour,
Je cherche à faire un programme en batch qui prend l'heure actuelle pour lui ajouter une certaine durée.
Par exemple : il est 18h --> faire tel et tel tâche à 18h+2h
Version imprimable
Bonjour,
Je cherche à faire un programme en batch qui prend l'heure actuelle pour lui ajouter une certaine durée.
Par exemple : il est 18h --> faire tel et tel tâche à 18h+2h
Salut a toi,
Je ne sait pas comment tu peut t'y prendre pour faire ce que tu veut faire, mais voici une alternative :
Dans mon exemple on ne recupere pas l'heure pour y rajouter du temp, on calle tout simplement une pause avant l'execution de la suite.Code:
1
2
3
4
5
6
7
8 @echo off cls echo ceci es ton batch echo patati patata echo WScript.Sleep 2000 > temp.vbs call temp.vbs echo le reste de ton appli ...
Rien ne t'empeche de creer un batch specifique afin de pouvoir continuer le batch actuel, si jamais tu as plusieur actions et plusieurs delais.
Ps:2000 represente 2 secondes (calculer en milllieme de secondes)
J'espere que tu pourra tirer profit de cette facon @+
Merci pour ton aide, je ne voyais pas la solution comme ca mais pourquoi pas. L'ennui c'est que la fenetre ne doit pas etre visible à l'utilisateur... Et sachant que le delai que je veux avoir c'est 2 heures, ca pose probleme.
En fait ce que je cherche à faire c'est un script qui se lance à chaque logon d'un utilisateur pour creer une tache planifiée quoi doit fermer la session de cet utilisateur au bout de ... 2h.
voila voila... mon ptit frere reste un peu trop longtemps sur le PC, et je veux etre sûr qu'il ne puisse pas rester plus de 2h, meme quand je suis absent. :mouarf:
J'arrive deja à eteindre ou verrouiller la machine à distance avec un scipt que j'execute via psexec
Le faite d'etre invisible n'es pas un souci en utilisant le script Vbs suivant :
Fichier.bat etant le fichier bat a lancer en arriere plan.Code:
1
2
3
4
5 DIM oWsh, commande Set oWsh = Wscript.Createobject("Wscript.Shell") commande = "fichier.bat" oWsh.Run commande,0
Le probleme majeur que je voit et que lorsque son temps (les 2 heures) aura expirer, rien ne l'empechera de relancer celle-ci.
Pour ce qui es de psexec je ne l'es malheuresement jamais utilisé en reseau.
Sinon petite question : as tu accés a la session de ton frere ?
Oui, sur la machine il y a un compte administrateur qui est le mien, et un compte avec droit restreints qui est le sien
En quoi c'est important?
Simplement pour savoir si tu peut ou non "installer" tranquillement ta future application, ne connaissant pas psexec en réseau :(
Je fini mon déménagement et j'essaierai de te trouver une solution.
Bonjour,
je sais que c'est un peu long juste pour 2 heures à rajouter dans ton batch, mais j 'ai pas trouvé plus court. Rajoute ce bout de script dans ton script.
Ne fonctionne pas avec les chiffres négatifs ni avec les nombres au dessus de 23 heures, sinon je crois qu'il marche dans tous les cas de figure.
Indique le nombre d'heure désirés dans la variable heuresupp
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 @echo off set heuresupp=2 set /a an_Now=%date:~6,4% set /a mois_Now=%date:~3,2% set /a Jour_Now=%date:~0,2% set /a hh_Now=%time:~0,2% set /a mn=%time:~3,2% set jour=%jour_Now% set an=%an_Now% set mois=%mois_Now% set moistmp=%mois_Now% :Calcul set /a heuretmp=%hh_Now%+%heuresupp% if %heuretmp% GEQ 24 (set /a heure=%heuretmp%-24) else (set /a heure=%heuretmp%) if %heuretmp% GEQ 24 (set /a jour=%jour_Now%+1) else (set /a jour=%jour_Now%) :calculmois if %mois_Now% EQU 1 set /a jourJ=%jour%-31 if %mois_Now% EQU 2 goto bissextile if %mois_Now% EQU 3 set /a jourJ=%jour%-31 if %mois_Now% EQU 4 set /a jourJ=%jour%-30 if %mois_Now% EQU 5 set /a jourJ=%jour%-31 if %mois_Now% EQU 6 set /a jourJ=%jour%-30 if %mois_Now% EQU 7 set /a jourJ=%jour%-31 if %mois_Now% EQU 8 set /a jourJ=%jour%-31 if %mois_Now% EQU 9 set /a jourJ=%jour%-30 if %mois_Now% EQU 10 set /a jourJ=%jour%-31 if %mois_Now% EQU 11 set /a jourJ=%jour%-30 if %mois_Now% EQU 12 set /a jourJ=%jour%-31 goto CalculFinal :bissextile set /A tt=%an_Now% %% 4 if not %tt%==0 goto SET28 set /A tt=%an_Now% %% 100 if not %tt%==0 goto SET29 set /A tt=%an_Now% %% 400 if %tt%==0 goto SET29 :SET28 if %mois_Now% EQU 2 set /a jourJ=%jour%-28 goto CalculFinal :SET29 if %mois_Now% EQU 2 set /a jourJ=%jour%-29 :CalculFinal if %jourJ% GTR 0 set /a moistmp=%mois_Now%+1 if %jourJ% GTR 0 set /a mois=%mois_Now%+1 if %jourJ% LEQ 0 set jourJ=%jour% if %moistmp% GTR 12 set /a mois=%mois_Now%+1-12 if %moistmp% GTR 12 set /a an=%an_Now%+1 echo Base : %Jour_Now%/%mois_Now%/%an_Now% %hh_Now%:%mn% echo JourJ+2 : %jourJ%/%mois%/%an% %heure%:%mn% pause
Sinon, essaie via les tâches planifiées... Le souci majeur, c'est que fermer la session d'un utilisateur sans son accord n'est pas "trivial" : tu peux certes utiliser "shutdown", mais ça n'empêche pas l'utilisateur de rouvrir une nouvelle session après ça !
Au pire, tu exécutes en démarrage de session la commande suivante :
La fenêtre ne peut pas être fermée, et reste tout le temps visible. Toutefois, il existe des commandes externes permettant de cacher n'importe quelle fenêtre (cf. cette FAQ, mais je ne l'ai pas essayé).Code:shutdown -s -t 7200 -f -c "Deux heures maximum !"
Pour arrêter l'arrêt programmé, tu devras taper ceci :
Au pire, un petit batch en début de session qui teste tout ça :Code:shutdown -a
1) Vérification de l'absence d'un fichier-test.
2) Si absent, déclenchement de l'arrêt dans deux heures et création du fichier-test.
3) Si présent, fermeture immédiate de la session (-l au lieu de -s)
Ton frère aura droit à ses deux heures, et s'il dépasse, ne pourra plus se connecter... Il faudra se connecter avec ton compte, et effacer le fichier-test, pour le réautoriser à se connecter de nouveau.
Bon, c'est éminemment contournable si ton frangin connait un peu l'informatique... Mais si c'est pour le déconnecter de "Winnie l'ourson online", ça devrait le faire... :mrgreen:
Si c'est pour le déconnecter d'autre chose (jeu en ligne par exemple), la solution peut passer par les systèmes de contrôle parental du jeu, les réglages d'accès du modem-routeur, etc. : c'est déjà nettement plus "fin" que la déco sauvage de la session...