IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Ajouter une durée à l'heure locale


Sujet :

Scripts/Batch

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 87
    Par défaut Ajouter une durée à l'heure locale
    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

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 43
    Par défaut
    Salut a toi,

    Je ne sait pas comment tu peut t'y prendre pour faire ce que tu veut faire, mais voici une alternative :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ...
    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.
    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 @+

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 87
    Par défaut
    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.

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 87
    Par défaut
    J'arrive deja à eteindre ou verrouiller la machine à distance avec un scipt que j'execute via psexec

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 43
    Par défaut
    Le faite d'etre invisible n'es pas un souci en utilisant le script Vbs suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DIM oWsh, commande
    Set oWsh = Wscript.Createobject("Wscript.Shell")
    commande = "fichier.bat"
    oWsh.Run commande,0
    Fichier.bat etant le fichier bat a lancer en arriere plan.

    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 ?

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 87
    Par défaut
    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?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 43
    Par défaut
    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.

  8. #8
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 2
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  9. #9
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    shutdown -s -t 7200 -f -c "Deux heures maximum !"
    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é).

    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 :
    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...
    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...
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

Discussions similaires

  1. [PHP 5.2] Ajouter une durée à une heure de départ
    Par LadyArwen dans le forum Langage
    Réponses: 6
    Dernier message: 03/07/2010, 09h13
  2. [AC-2003] Ajouter une durée à une heure
    Par da_latifa dans le forum Access
    Réponses: 4
    Dernier message: 02/12/2009, 22h58
  3. Ajouter une durée à une date
    Par agllid dans le forum WinDev
    Réponses: 2
    Dernier message: 20/08/2007, 11h54
  4. [SQL] Ajouter une durée à une date et obtenir une date valide
    Par bigltnt dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 05/06/2007, 14h55
  5. Formatage d'une durée en heure:minute
    Par FlyByck dans le forum Langage
    Réponses: 3
    Dernier message: 15/09/2006, 21h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo