5 votes

Lot - Heure de modification du fichier avec secondes

Je veux savoir quand un fichier a été modifié pour la dernière fois.

Je peux obtenir ces informations en utilisant le script batch suivant :

FOR %%i IN (myfile) DO SET modif_time=%%~ti

Le problème est que j'ai besoin de la seconde de la dernière modification et la commande %~t ne renvoie que la date et l'heure avec seulement les heures et les minutes.

Je ne peux vérifier les secondes qu'en consultant manuellement la "fenêtre des propriétés" fichier par fichier.

Comment puis-je obtenir l'heure avec les secondes en batch ?

7voto

William Whyte Points 1036

Windows Vista / 7 et ultérieur

Windows Server 2003 et ultérieur

Avec un peu d'effort, vous pouvez utiliser forfiles pour obtenir l'heure de dernière modification d'un fichier spécifique, les secondes incluses :

REM "delims=" est requis pour éviter de supprimer AM/PM
for /f "delims=" %%i in ('"forfiles /m nom_fichier /c "cmd /c echo @ftime" "') do set modif_time=%%i
echo %modif_time%

Exemple de sortie

7:33:54 AM

La valeur affichée est basée sur l'heure locale de l'ordinateur et correspond à l'heure affichée dans la boîte de dialogue des propriétés du fichier.

Aide à l'utilisation

http://technet.microsoft.com/en-us/library/cc753551.aspx


Windows XP

forfiles.exe n'est pas disponible par défaut, cependant vous pouvez obtenir manuellement l'exécutable requis. Il s'agit d'une ancienne version qui fait partie du Windows 2000 Resource Kit. La syntaxe est sensible à la casse et légèrement différente, tout comme la sortie :

for /f %%i in ('"forfiles.exe -mnom_fichier -c"cmd /c echo @FTIME" "') do set modif_time=%%i
echo %modif_time%

Exemple de sortie

153354

Ici, la valeur de l'heure est affichée au format UTC et n'est pas affectée par les changements de fuseau horaire ou l'heure d'été. Dans cet exemple, le fichier a été modifié pour la dernière fois à 15:33:54 (UTC).

Note Vous pouvez obtenir la nouvelle version de forfiles.exe en obtenant une copie du fichier à partir de n'importe quelle installation de Windows 2003 Server ou des supports d'installation.

0voto

JdeBP Points 25711

Utilisez un interpréteur de commandes capable de le faire.

Voici comment le faire avec TCC/LE de JP Software, avec quelques variations sur le thème lancées en prime :

[C:\Users\JdeBP]touch /c myfile
10/01/2014 18:31:32.710  C:\Users\JdeBP\myfile

[C:\Users\JdeBP]echo myfile a été créé à %@filetime[myfile,c,s]
myfile a été créé à 18:31:32

[C:\Users\JdeBP]echo myfile a été last accessed at %@filetime[myfile,a,s]
myfile a été last accessed at 18:31:32

[C:\Users\JdeBP]for i in (myfile) do set modif_time=%@filetime[%i,w,s]

[C:\Users\JdeBP]echo myfile a été last modified at %modif_time%
myfile a été last modified at 18:31:32

Lecture complémentaire

  • JP Software. @FILETIME. Take Command / TCC Help.
  • JP Software. TOUCH. Take Command / TCC Help.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X