Calcul sur les heures sous DOS
jeefreeze
Messages postés
13
Statut
Membre
-
jeefreeze Messages postés 13 Statut Membre -
jeefreeze Messages postés 13 Statut Membre -
Bonjour,
Je cherche un peu partout des infos sur la création de fichier .bat, afin d'assurer la sauvegarde de mes archives sur le réseau
Ce fichier .bat est ensuite automatiquement lancé la nuit, via le gestionnaire de tâches ....
Bon je suis neu neu dans ce domaine, mais avec un peu de logique et d'astuces on arrive "presque" à ces fins.
Ceci dit je me heurte à un petit problème de calcul .... avant toutes choses voilà le code
@echo off
ECHO.
ECHO ************************************************
ECHO * *
ECHO * SAUVEGARDE ARCHIVES LOTUS VERS M: EN COURS *
ECHO * *
ECHO ************************************************
ECHO.
set debut=%TIME%
ECHO Debut de la sauvegarde a: %debut%
C:
cd Program Files
cd lotus
cd notes
cd data
cd archive
@xcopy *.* M:\Sauvegarde_Archives_LOTUS\ /Q /E /R /Y /I
ECHO.
ECHO ***********************************************
ECHO * *
ECHO * SAUVEGARDE ARCHIVES LOTUS SUR M: TERMINEE *
ECHO * *
ECHO ***********************************************
ECHO.
set fin=%TIME%
ECHO Fin de la sauvegarde a: %fin%
set /a duree=%fin%-%debut%
ECHO Duree de la sauvegarde : %duree%
pause
La pose finale me permet le matin en arrivant de contrôler que le script c'est bien lancé pendant la nuit
Donc voilà le problème
Au début je stocke l'heure de début dans la variable %début% et l'heure de fin dans la variable %fin%
Ensuite je veux faire la différence entre les deux en stockant le résultat dans la variable %duree% par la commande
set /a duree=%fin%-%debut%
.... mais ça marche pas
Pour info voila le résultat: http://cjoint.com/data/iktVpdHxZR_Resultat.jpg
1- Auriez-vous l'info qui me permette d'obtenir le résultat au format heure (ex: 01:02:53.26)
2- Question subsidiaire. Comment pendant la sauvegarde avoir une petite animation simple qui m'indique que la routine est en cours ?
Car, ne voulant pas afficher le nom des fichiers sauvegardés, on ne vois pas la routine tourner, seul le prompt clignote
Merci par avance
Je cherche un peu partout des infos sur la création de fichier .bat, afin d'assurer la sauvegarde de mes archives sur le réseau
Ce fichier .bat est ensuite automatiquement lancé la nuit, via le gestionnaire de tâches ....
Bon je suis neu neu dans ce domaine, mais avec un peu de logique et d'astuces on arrive "presque" à ces fins.
Ceci dit je me heurte à un petit problème de calcul .... avant toutes choses voilà le code
@echo off
ECHO.
ECHO ************************************************
ECHO * *
ECHO * SAUVEGARDE ARCHIVES LOTUS VERS M: EN COURS *
ECHO * *
ECHO ************************************************
ECHO.
set debut=%TIME%
ECHO Debut de la sauvegarde a: %debut%
C:
cd Program Files
cd lotus
cd notes
cd data
cd archive
@xcopy *.* M:\Sauvegarde_Archives_LOTUS\ /Q /E /R /Y /I
ECHO.
ECHO ***********************************************
ECHO * *
ECHO * SAUVEGARDE ARCHIVES LOTUS SUR M: TERMINEE *
ECHO * *
ECHO ***********************************************
ECHO.
set fin=%TIME%
ECHO Fin de la sauvegarde a: %fin%
set /a duree=%fin%-%debut%
ECHO Duree de la sauvegarde : %duree%
pause
La pose finale me permet le matin en arrivant de contrôler que le script c'est bien lancé pendant la nuit
Donc voilà le problème
Au début je stocke l'heure de début dans la variable %début% et l'heure de fin dans la variable %fin%
Ensuite je veux faire la différence entre les deux en stockant le résultat dans la variable %duree% par la commande
set /a duree=%fin%-%debut%
.... mais ça marche pas
Pour info voila le résultat: http://cjoint.com/data/iktVpdHxZR_Resultat.jpg
1- Auriez-vous l'info qui me permette d'obtenir le résultat au format heure (ex: 01:02:53.26)
2- Question subsidiaire. Comment pendant la sauvegarde avoir une petite animation simple qui m'indique que la routine est en cours ?
Car, ne voulant pas afficher le nom des fichiers sauvegardés, on ne vois pas la routine tourner, seul le prompt clignote
Merci par avance
Configuration: Windows XP Internet Explorer 7.0
10 réponses
-
-
Bonjour,
J'ai finalement réussi ce que je voulais ..... voir : https://www.batcher.fr/forum/viewtopic.php?f=6&t=192
A+ -
hello
ce bout de code va ouvrir une fenetre, afficher l'arborescence des dossiers de M:\Sauvegarde_Archives_LOTUS toute les 10 secs tant que le xcopy tourne
del /q LOCK 2> NUL
start cmd /c "for /l %a in (1,1,10000) do (@tree M:\Sauvegarde_Archives_LOTUS & @ping -n 10 127.0.0.1 > NUL & if exist LOCK exit /b)"
@xcopy *.* M:\Sauvegarde_Archives_LOTUS\ /Q /E /R /Y /I
echo. > LOCK -
Salut dubcek
Merci pour cette amélioration .... mais et oui il y a un "mais" ..... En dehors du gait que je n'y cmprend rien, ça marche pas ou j'ai pas su la mettre en applications
J'ai écris
REM -------- SAUVEGARDE ARCHIVES LOTUS ---------
ECHO - SAUVEGARDE ARCHIVES LOTUS EN COURS -
del /q LOCK 2> NUL
start cmd /c "for /l %a in (1,1,10000) do (@tree M:\Sauvegarde_Archives_LOTUS & @ping -n 10 127.0.0.1 > NUL & if exist LOCK exit /b)"
@xcopy C:\Program Files\lotus\notes\data\archive M:\Sauvegarde_Archives_LOTUS /Q /E /R /Y /I
echo. > LOCK
ECHO - SAUVEGARDE ARCHIVES LOTUS TERMINEE -
J'ai le renvoi suivant
- SAUVEGARDE ARCHIVES LOTUS EN COURS -
Nombre de paramètres non valide
- SAUVEGARDE ARCHIVES LOTUS TERMINEE -
Merci -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
j'ai testé interactivement, alors il manque un % pour %%a dans un .bat:
start cmd /c "for /l %%a in (1,1,10000) do (@tree M:\Sauvegarde_Archives_LOTUS & @ping -n 10 127.0.0.1 > NUL & if exist LOCK exit /b)" -
Re
Effectivement ça marche .... mais j'ai toujurs rien compris. Appliquer sans savoir ça me dérange
Faut je j'essaye de comprendre (ça peu être utile pour autre chose voir débuger au besoin)
Question N°1:
Un petit fichier (Lock) sans extention se créer sur le lieu ou se trouve mon batch ?? Pourquoi ??
Question N°2
Que viens faire la fonction ping là dedans ??
[Edit] Oups, j'ai compris .... c'est une pause
https://forums.commentcamarche.net/forum/affich-1264217-commande-ms-dos-pour-inserer-une-pause
Merci bien -
tu as raison
# on supprime le fichier lock (n'importe quel nom) en ignorant le message si il n'existe pas
del /q LOCK 2> NUL
# on démarre une boucle longue (10000) en exécutant tree
start cmd /c "for /l %a in (1,1,10000) do (@tree M:\Sauvegarde_Archives_LOTUS
# le ping sert juste à attendre 10s, c'est plus simple qu'une boucle
@ping -n 10 127.0.0.1 > NUL
# tant que le fichier lock n'existe pas, xcopy tourne toujours, donc on boucle
if exist LOCK exit /b)"
# xcopy terminant, on crée un fichier lock donc la boucle va terminer
@xcopy .........
echo. > LOCK -
Re
Ah !! en effet ça deviens plus clair ... mais j'avais un peu avancé.
Je reste géné sur la synthaxe le %%a par exemple je sais pas à quoi il sert ....
Merci pour ton aide
A+ -
c'est une boucle, %%a prend la valeur 1, jusqu'a 10000, par pas de 1
for /l %a in (1,1,10000) do ...
essaye for /l %a in (1,1,10) do echo %a
avec %%a dans un .bat
j'aurais aussi pu faire une boucle infinie
:x
tree ...
goto x -
Merci dubeck
je commence à saisir ... mais il faut que je pratique :o)
A+