Nom de fichier

Résolu/Fermé
gval Messages postés 28 Date d'inscription samedi 8 août 2009 Statut Membre Dernière intervention 1 février 2016 - 17 oct. 2013 à 15:51
dubcek Messages postés 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 - 18 oct. 2013 à 14:43
Bonjour,

Je voudrais renommer des fichiers avec DOS, concaténer le nom avec la date et l'heure système.
Exemple: Le fichier "nomfic.txt" devient "nomfic_20131017161503.txt".

Quelles instructions pour récupérer la valeur système.?
Quelles instructions pour renommer le fichier. ?

Merci vos réponses syntaxiques



A voir également:

1 réponse

dubcek Messages postés 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 5 623
17 oct. 2013 à 16:27
hello
on récupère date et heure dans les variables %date% et %time%
C:> set d=%date:~6,4%%date:~3,2%%date:~0,2%
C:> echo %d%
20131017
C:> set t=%time:~0,2%%time:~3,2%%time:~9,2%
C:> echo %t%
162368
C:> ren nomfic.txt nomfic_%d%%t%.txt
0
gval Messages postés 28 Date d'inscription samedi 8 août 2009 Statut Membre Dernière intervention 1 février 2016
18 oct. 2013 à 08:52
Merci pour vos explications claires.
Cdlt.
0
gval Messages postés 28 Date d'inscription samedi 8 août 2009 Statut Membre Dernière intervention 1 février 2016
18 oct. 2013 à 10:13
Cela fonctionne quand l'heure est supérieure ou égale à 10H00.
Avant 10H00 l'instruction "ren nomfic.txt nomfic_%d%%t%.txt" donne par exemple
"nomfic_20131018 92817.txt" Avec un espace entre la date et l'heure, ce qui donne une syntaxe incorrecte, et donc DOS ne renomme pas le fichier "nomfic".
Après 10H00, on n'a plus ce problème.
Comment garder le "0" de la première position de l'heure pour garder une syntaxe correcte.
Merci
0
dubcek Messages postés 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 5 623
18 oct. 2013 à 12:09
effectivement !!
on remplace l'espace par un 0
j'ai modifié set t=... les secondes étaient fausses
set d=%date:~6,4%%date:~3,2%%date:~0,2%
set t=%time:~0,2%%time:~3,2%%time:~6,2%
set t=%t: =0%
ren nomfic.txt nomfic_%d%%t%.txt
à tester demain
0
gval Messages postés 28 Date d'inscription samedi 8 août 2009 Statut Membre Dernière intervention 1 février 2016
18 oct. 2013 à 14:21
J'ai modifié le programme " .bat" en fonction, puis changé l'heure du PC et testé.
OK ça marche. J'ai retenue cette solution plus simple et mis le programme en production.

Toutefois, j'ai pu tester aussi une autre solution qui fonctionne avec "FOR" .
for /f "tokens=1,2,3 delims=:" %%a in ('time /t') do set he=%%a
for /f "tokens=1,2,3delims=:" %%a in ('time /t') do set mi=%%b
for /f "tokens=1,2,3delims=:" %%a in ('time /t') do set sc=%%b

A toutes fins utiles.
Encore merci.
0
dubcek Messages postés 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 5 623
18 oct. 2013 à 14:43
on peut le faire en une seule boucle, mais time /t ne retourne pas les secondes (sur XP)
for /f "tokens=1,2,3 delims=:" %%a in ('time /t') do (set he=%%a
set mi=%%b
set sc=%%c)
echo %he%%mi%%sc%
0