Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
Compteur VIA horloge Windows
Auteur Message
Répondre en citant
Message Compteur VIA horloge Windows 
Bonjour,

Je cherches à faire un compteur ou l'utilisateur choisirait le temps en minutes avant que "x" commande soit exécutée mais je bloque,
car si les minutes sont au dessus de 60 et qu'il est 23h, il faut jouer avec le jour etc.. Et là je bloques Confused


Voici ce que j'ai pu faire, PS: Ne tenez compte que de la partie après le Goto:Next Okay Je ferais mon design basique après Okay

Code:

::************************::
::        TimeBatch       ::
::    Par Xavier Pacio    ::
::************************::
:: --- Copyright 2014 --- ::
:: - ALL RIGHT RESERVED - ::
::************************::
@Echo Off
Title TimeBatch - By Xavier Pacio
Color 79 & Mode 70,20

Rem _> On saute le menu principal :ok:
Goto:Next

:: Menu principal
:TimeBatch_StartMenu
Echo.
Echo   ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
Echo   º      TimeBatch      º
Echo   ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Echo.
Echo     Bienvenue %username% !
Echo   ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Echo.
Echo  1)
Echo.
Echo  2)
Echo.
Echo  3) Quitter
Echo.
Echo.
Echo.
Set /P "choice=Entrez votre choix:"
If %choice%==1
If %choice%==2
If %choice%==3 Exit
Cls & Goto:TimeBatch_Start

:: Code timeur
:Next

Set /p chx=Dans combien de temps souhaitez-vous mettre en veille votre PC ? (en minutes)

Set /A heure=%time:~0,2%
Set /A minute=%time:~3,2%
Set /A valeur=%minute%+%chx%

for /f "tokens=1,* delims=[,]" %%A in ('"%comspec% /u /c echo:%valeur%|more|find /n /v """') do set /a car=%%A-4 Rem By Stryk

Rem _> Si le timeur vaut plus de 60 minutes [...]

If %valeur% GEQ 60 (

   Rem Traitement des heures
   If %heure% EQU 23 (
   Set /A heure=00
   )
   If %heure% LSS 23 (
   Set /A heure=%heure%+1
   )
   Rem Traitement des minutes
   If %car% EQU 2 (
   
   
   Set cmpt=0
   :TimeBatch_Bcle
   If %valeur% GEQ 60 (
   Set /A cmpt=%cmpt%+1
   Set /A valeur=%valeur%-60
   Goto:TimeBatch_Bcle
   )
   

:TimeBatch_Boucle
Set time_real=%time:~0,5%
If %time_real% EQU %timeur_real% Goto:Suite
Goto:TimeBatch_Boucle


Merci bien Okay
@+




______________________________________________________
Une question ? N'hésitez pas à me contacter par Message Privé ou via le topique concerné.
Visiter le site web du posteur
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message Compteur VIA horloge Windows 
Salut Alonso,

Pour ne pas réinventer l'eau chaude on va passer par VBS :

Code:
::SachaDee 2014

@Echo off
Set /p "$M=Entrez le NB de Minutes ajouter a l'heure actuelle : "

@echo off
echo>##.vbs wscript.echo DateAdd("n",%$M%,now)
for /f "tokens=*" %%y in ('cscript/nologo ##.vbs') do (set y=%%y)
echo %Time% + %$M% = %y%
del ##.vbs 2>nul
pause


On peut faire pareil ave des jours, des heures, des dates complètes (en + et en -)
pour ceux que ça interèsse : http://www.aspfree.com/c/a/windows-scripting/working-with-dates-and-times-i…

Okay




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message Compteur VIA horloge Windows 
Merci sacha,

Quelques questions Laughing

1) On récupère comment la variable sur notre Batch ?
2) Est-ce que ton code prend en compte que si il est 23h40 et qu'on programme un commande a exécuter dans 30 min (par exemple) il faut que ça change de jour ??
3) Tu serais le faire en Batch ? :-)

C'est pour un pote, je lui apprends le Batch et il m'a demandé de lui expliquer à faire ceci, a vrai dire je lui ai dis que c'était un peu trop casse-tête ^^
Bref, j'attends ta réponse.

@+ Okay




______________________________________________________
Une question ? N'hésitez pas à me contacter par Message Privé ou via le topique concerné.
Visiter le site web du posteur
Répondre en citant
Message Compteur VIA horloge Windows 
Alonso07798,

J'ai compris ton problème, donc ma réponse en tient compte.

Si je saurais faire ça en bat...... je pense que oui....

Mais pourquoi ?

Le code que je t'ai fais ne fonctionnne pas ?




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message Compteur VIA horloge Windows 
Pas encore testé ton code, mais juste savoir comment tu procèderais en Batch, car j'ai essayé, et il y avait trop de possibilités, je vais me repencher sur ça dans deux semaines, mais j'aimerais bien avoir ta version Okay




______________________________________________________
Une question ? N'hésitez pas à me contacter par Message Privé ou via le topique concerné.
Visiter le site web du posteur
Répondre en citant
Message Compteur VIA horloge Windows 
Salut Very Happy

Je propose ce code uniquement en batch :


Code:

@echo off
set Heure=%time:~0,2%
set Minute=%time:~3,2%
set Jour=%Date:~3,2%
echo Nous sommes le %Jour% et il est %Heure%:%Minute%
set/p MinAjt=Dans combien de minutes executer la commande ? :
set/a Res=%Minute%+%MinAjt%
if %Res% Geq 60 (
   call :Set_
) else (
   set Minute=%Res%
)
if %Minute% Leq 9 set Minute=0%Minute%
echo La commande sera executee le %Jour% a %Heure%:%Minute%
pause
exit

:Set_
set/a Res=%Res%-60
set/a Heure+=1
if not %Res% Lss 60 goto :Set_
set Minute=%Res%
if %Heure% Lss 24 goto:eof
:Hre_
set/a Heure=%Heure%-24
set/a Jour+=1
if not %Heure% Lss 24 goto :Hre_
goto:eof



Le problème c'est pour les mois, on ne peut pas récupérer une date dans le mois prochain, car il faudrait gérer les mois de 30 ou 31 jours (et je te parle pas de février Mr. Green ) ce serais beaucoup plus compliqué, mais peut être pas impossible Rolling Eyes Redis mois si c'est vraiment nécessaire je chercherais Wink

@+ Okay




______________________________________________________
Site MagicDosYoutubeFacebookVietcong 2 OlympeVietcong 2 Alliance
Visiter le site web du posteur Skype
Répondre en citant
Message Compteur VIA horloge Windows 
Inspire toi de ce code MagicDOS Laughing
http://batch.xoo.it/t4287-Ann-es-bissextiles.htm




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message Compteur VIA horloge Windows 
Bonjour,

Merci pour vos réponses, je me penches sur tout ça dès que j'ai un peu de temps Okay @+




______________________________________________________
Une question ? N'hésitez pas à me contacter par Message Privé ou via le topique concerné.
Visiter le site web du posteur
Répondre en citant
Message Compteur VIA horloge Windows 
Welcome back Okay

J'ai encore un soucis vers après l'écriture des logs...

Code:

:: Commande planifiée
:CommandePlanifiée
Rem _> Setup des variables - Début
Set Heure=%time:~0,2%
Set Minute=%time:~3,2%
Set Jour=%Date:~3,2%
Call:Compteur_Car
Rem _> Setup des variables - Fin
Echo.
Echo Nous sommes le %Jour% et il est %Heure%:%Minute%
Echo.&Echo.&Echo.
Set /P MinAjt=Dans combien de minutes souhaitez-vous executer la commande ? :
Set /A Res=%Minute%+%MinAjt%
Echo.&Echo.
Set /P cmdexec=Commande a executer:
Echo.&Echo.
If %Res% Geq 60 (Call :Set_) else (set Minute=%Res%)
If %Minute% Leq 9 set Minute=0%Minute%

Rem _> Ecriture des logs... -Début
Call:Logs
>> Logs_CoursBatch.txt Echo Utilisation de commande planifiée avec les variables suivantes:
>> Logs_CoursBatch.txt Echo Date: (Jour %Jour%) (Heure %Heure%:%Minute%) ; Cmd: %cmdexec%
>> Logs_CoursBatch.txt Echo.
Rem _> Ecriture des logs... -Fin

Echo La commande "%cmdexec%" sera executee le %Jour% a %Heure%:%Minute%
Pause>NUL & Goto:TimeBatch_Boucle
:Set_
Set/a Res=%Res%-60
Set/a Heure+=1
If not %Res% Lss 60 goto :Set_
Set Minute=%Res%
If %Heure% Lss 24 goto:eof
:Hre_
Set/a Heure=%Heure%-24
Set/a Jour+=1
If not %Heure% Lss 24 goto :Hre_
goto:eof
:Compteur_Car
For /f "tokens=1,* delims=[,]" %%A in ('"%comspec% /u /c echo:%valeur%|more|find /n /v """') do set /a car=%%A-4
Rem _> Compteur de caractères By @Strik - [url=http://www.batch.xoo.it]www.batch.xoo.it[/url] !
Goto:Eof
:TimeBatch_Boucle
Set time_real=%time:~0,5%
Set time_avnt=%Heure%:%Minutes%
:TimeBatch_Boucle_2
If %time_real% EQU %timeur_real% Goto:Suite_
Goto:TimeBatch_Boucle_2
:Suite_
%cmdexec%
Pause>NUL
Goto:Start


L'idée étant de faire une boucle qui testerait si la date actuelle (time_real) correspond à ce que l'on a configuré plus tôt, et que si ça correspond, ça aille au Goto:Suite, sinon la boucle recommence... Mais je ne vois pas comment je pourrais inclure le jour non-plus...



Une idée d'où pourrait venir l'erreur ? Confused
@+




______________________________________________________
Une question ? N'hésitez pas à me contacter par Message Privé ou via le topique concerné.
Visiter le site web du posteur
Répondre en citant
Message Compteur VIA horloge Windows 
Apparemment il ne trouve pas le label [:logs] Wink

Voilà ma solution (Testé sous W7) :

Code:

::SachaDee 2014

@Echo off&Cls

Set /P "MinAjt=Dans combien de minutes souhaitez-vous executer la commande ? : "
Set /P "cmdexec=Commande a executer: " & cls

echo>##.vbs wscript.echo DateAdd("n",%MinAjt%,now)
for /f "tokens=1,2 delims= " %%y in ('cscript/nologo ##.vbs') do (
 set $Date=%%y
 set $Time=%%z)
del ##.vbs 2>nul

echo Nous sommes le %date% %Time%
echo La commande [%cmdexec%] sera executé le %$Date% a %$Time:~0,5%

:loop
set "$Mytime=%time: =0%"
echo [%Date% %$Mytime:~0,5%] - [%$Date% %$time:~0,5%]
if %date%==%$Date% if %$Mytime:~0,5%==%$Time:~0,5% (
 echo execution de : [%cmdexec%]
 %cmdexec%
 exit /b)
ping localhost -n 3 >nul
goto:loop



Ou a partir de windows 7

Code:

@echo off
Set /P "MinAjt=Dans combien de minutes souhaitez-vous executer la commande ? : "
Set /P "cmdexec=Commande a executer: " & cls

set /a $HeureH=60*%MinAjt%
Timeout %$HeureH% /NoBreak
%cmdexec%



Maintenant tu peux améliorer la gestion des erreurs. Tester si la valeur entré et numérique, faire une adaptation pour XP, etc...

Okay




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message Compteur VIA horloge Windows 
Il ne trouve pas le label Logs ? Pourtant sur tous les autres programmes il le trouve ^^
Et sur mon fichier de log il y a bien l'en-tête...

Citation:

---===[01/12/14 à 15h06]===---

Utilisation de commande planifiée avec les variables suivantes:
Date: (Jour 12) (Heure 15:16) ; Cmd: exit


Je ne comprends pas trop... Et pour ce qui est de ta solution, j'y ai pensé, mais c'est trop simple Laughing "Pourquoi faire simple quand on peut faire compliqué ?" Okay
Bref, en attendant je continues mes recherches, si vous avez une solution au problème je suis preneur... Wink

@+




______________________________________________________
Une question ? N'hésitez pas à me contacter par Message Privé ou via le topique concerné.
Visiter le site web du posteur
Message Compteur VIA horloge Windows 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch