Utilisation du for pour obtenir la date d'un fichier - Shell/Batch - Programmation
Marsh Posté le 29-07-2005 à 13:08:09
Moi pour test j'ai fait un truc du style:
@echo off
set /p HEURE=Entrer l'Heure du style "12:00" :
set /p JOUR=Entrer la date du style "27/07/2005" :
:RE
echo Le %today% A %HORA%==%HEURE%?
echo.
for /f "tokens=1-4 delims=/ " %%i in ('date /t') do (set today=%%j/%%k/%%l)
for /f "tokens=1" %%m in ('time /t') do (set HORA=%%m)
cls
if not "%JOUR%"=="%today%" goto RE
echo ok pour JOUR!!!
if not "%HEURE%"=="%HORA%" goto RE
echo Ok
pause
Ca Te Parle sinon tu peu faire comme ca mais ca va te mettre un espace dans le cas ou il y a que 4 caractere exemple :
09:00
avec %TIME:~0,5% tu aura 9:00 avec un espace devant donc Up pour une bonne solution!
Et si ta un PB demande a nglechau il est a moitié balaise en script batch!!!
Marsh Posté le 29-07-2005 à 13:25:10
@Sm@No: Merci mais non, chuis pas balaise du tout
Sinon, pour l'histoire d'espace tu peux faire style :
Code :
|
Marsh Posté le 29-07-2005 à 17:02:30
Yes pas mal!!!
mais la ca tiend en une ligne:
for /f "tokens=1" %%i in ('time /t') do (set HORA=%%i)
comme ca c'est aussi au bon format!
Pas mal mais moi je trouve kan mm ke T Balaise!!!
Marsh Posté le 29-07-2005 à 19:11:16
"date /t" et "time /t" dépendent de tes params régionnaux, donc ne sont pas très passe-partout en fait
Par exemple, chez moi, je devrais passer
for /f "tokens=1-4 delims=/ " %%i in ('date /t') do (set today=%%j/%%k/%%l)
en
for /f "tokens=1-3 delims=/ " %%i in ('date /t') do (set today=%%i/%%j/%%k)
pour obtenir le résultat souhaité.
De même façon,
time /t
donne le même résultat à 7h qu'à 19h sur un PC dont l'heure est réglée au format hh:mm:ss (format 12h) au lieu de HH:mm:ss (format 24h).
Enfin, pour
for /f "tokens=1" %%i in ('time /t') do (set HORA=%%i)
le "tokens=1" n'est pas nécessaire
Voilà pour les chti détails.
Marsh Posté le 29-07-2005 à 09:57:58
Il est possible d'obtenir une multitude d'informations sur un fichier, pour cela, on utilise %~x1 où x est différent suivant l'information désiré :
t : Affichage de la date et de l'heure de création (time).
J'ai vu plusieurs posts sur ce sujet mais pas d'exemple de code fonctionnant.
Est ce que quelqu'un pourrai me donner un exemple d'utilisation du for ainsi? Par exemple, pour obtenir les dates des fichier d'un dossier.
for %%a in (Dossier\*) do(
echo %%a
)
Mais ou mettre le %~xt ?
Je precise que je suis sous windows XP en batch.
Merci d'avance
Message édité par qapoka le 29-07-2005 à 10:02:03