Comment modifier la date et l’horodatage d’un fichier à l’aide de l’invite de commandes ou de PowerShell

📅
🕑 6 minutes de lecture

Modifier l’horodatage des fichiers peut paraître anodin, mais c’est étonnamment pratique pour simuler des modifications ou corriger des métadonnées erronées. Il arrive que Windows se trompe d’horodatage ou que l’on veuille antidater un document pour lui donner un aspect plus ancien (on ne juge personne !).Quelle que soit la raison, savoir ajuster ces dates avec des outils intégrés comme PowerShell ou même l’invite de commandes (avec un peu d’aide) peut vous éviter bien des tracas. Franchement, c’est assez étrange que Windows verrouille ces attributs, à moins de connaître les astuces. Ce guide détaille donc les étapes concrètes pour obtenir les horodatages souhaités. Attendez-vous à utiliser la ligne de commande, à découvrir quelques conseils sur les commandes batch et à une pointe de frustration – car, bien sûr, Windows complique toujours les choses inutilement.

Comment modifier la date et l’horodatage d’un ou plusieurs fichiers via l’invite de commandes ou PowerShell

Si vous en avez assez de voir vos fichiers afficher obstinément des dates de création, de modification ou d’accès incorrectes, il existe plusieurs façons de les définir manuellement. PowerShell est d’ailleurs assez performant nativement et vous permet de définir facilement ces trois horodatages. En revanche, l’invite de commandes (CMD) ne prend pas en charge cette fonctionnalité nativement ; c’est là qu’un petit utilitaire externe comme NirCmd s’avère utile. Le choix de la méthode dépend de votre aisance et du nombre de fichiers à mettre à jour. Voyons ensemble la marche à suivre. Il arrive parfois, sur certaines configurations, que ces méthodes échouent du premier coup ou nécessitent un redémarrage ; ne vous découragez donc pas si le résultat n’est pas parfait dès la première tentative.

Comprendre les attributs de date et d’horodatage des fichiers

Il faut d’abord comprendre la signification de chaque horodatage. Les plus importants sont :

  • Date de création : date à laquelle le fichier a été créé. En général, il est déconseillé de modifier ce paramètre, sauf en cas de nécessité absolue.
  • Date de dernière modification : date et heure de la dernière modification ou de l’enregistrement du fichier. C’est généralement l’information qui importe pour simuler des modifications récentes.
  • Date et heure du dernier accès : date et heure auxquelles le fichier a été ouvert ou consulté pour la dernière fois. Moins important, mais si vous souhaitez un contrôle total, vous pouvez également définir cette option.

Ces paramètres sont stockés dans les métadonnées du fichier et peuvent être modifiés manuellement, mais Windows manque de clarté à ce sujet. PowerShell permet de les modifier directement via des commandes, tandis que l’invite de commandes (CMD) nécessite une intervention extérieure. Savoir quel paramètre modifier est la première étape ; sinon, c’est comme essayer de réparer une montre sans savoir quel mécanisme on manipule.

Modifier l’horodatage d’un fichier à l’aide de l’invite de commandes avec NirCmd

Si vous travaillez exclusivement en ligne de commande, c’est peut-être la solution idéale. Windows ne proposant pas de méthode native pour modifier directement les horodatages, NirCmd est votre allié. Ce petit utilitaire permet de définir les horodatages des fichiers depuis la ligne de commande. Je l’ai utilisé à plusieurs reprises : sur une configuration, il a fonctionné après quelques essais, sur une autre, j’ai dû redémarrer. La patience est donc essentielle.

  • Téléchargez NirCmd depuis sa source officielle et extrayez-le dans un répertoire.
  • Ajoutez le dossier contenant nircmd.exe à la variable d’environnement PATH de votre système, ou spécifiez simplement le chemin complet lors de l’exécution des commandes.
  • Ouvrez l’invite de commandes en tant qu’administrateur. Ne pas le faire peut entraîner des problèmes d’autorisation, alors mieux vaut prévenir que guérir.
  • Accédez au répertoire de votre fichier cible avec cd.
  • Exécutez une commande comme :
nircmd setfiletime "example.txt" "15-03-2023 10:22:30" "15-03-2023 10:22:30" "15-03-2023 10:22:30"

Cela configure les trois horodatages à la date et à l’heure spécifiées. Veillez à utiliser le format jj-mm-aaaa hh:mm:ss, sinon cela risque de provoquer un dysfonctionnement.

Si vous souhaitez simplement mettre à jour l’heure actuelle au lieu d’une date précise, procédez comme suit :

nircmd setfiletime "example.txt" now now now

Très pratique si vous voulez falsifier rapidement une date de modification ou d’ouverture récente.

Modification par lots de plusieurs fichiers avec des boucles CMD

Si vous avez de nombreux fichiers à corriger, ne les traitez pas un par un. Le traitement par lots est le point fort de CMD et NirCmd. Une boucle `for /r` permet de mettre à jour tous les fichiers d’un dossier, voire de ses sous-dossiers, en une seule opération. C’est un peu lourd, mais efficace.

  • Accédez au dossier cible.
  • Exécutez une commande similaire à celle-ci (remplacez la date et l’heure selon vos besoins) :
for /r %i in (*) do nircmd setfiletime "%i" "15-03-2023 10:23:38" "15-03-2023 10:23:38"

Cette commande met à jour l’horodatage de tous les fichiers du dossier et de ses sous-dossiers. Pratique pour nettoyer les horodatages en masse, surtout avec des dizaines ou des centaines de fichiers.

Utiliser PowerShell pour plus de flexibilité

Si vous êtes plus à l’aise avec PowerShell ou si vous souhaitez une solution plus intégrée sans outils externes, PowerShell est fait pour vous. Il est très puissant une fois maîtrisé. Vous pouvez modifier directement les dates de création, de dernière modification et de dernier accès grâce aux cmdlets intégrées.

  • Ouvrez PowerShell en tant qu’administrateur, car les autorisations peuvent vous bloquer autrement.
  • Définissez votre date cible :
$NewDate = Get-Date -Year 2023 -Month 3 -Day 15 -Hour 10 -Minute 22 -Second 30

Cela crée un objet date que vous pouvez réutiliser.

  • Définissez les horodatages de vos fichiers avec des commandes comme :
Set-ItemProperty -Path "example.txt" -Name CreationTime -Value $NewDate Set-ItemProperty -Path "example.txt" -Name LastWriteTime -Value $NewDate

Cela met à jour à la fois la date de création et la date de dernière modification. C’est très simple une fois qu’on a compris le système.

Ajustement de la date et de l’heure du dernier accès dans PowerShell

Si vous souhaitez être exhaustif et modifier également l’horodatage de la dernière ouverture, ajoutez simplement :

Set-ItemProperty -Path "example.txt" -Name LastAccessTime -Value $NewDate

Ainsi, le fichier apparaîtra comme ayant été ouvert à la date que vous avez indiquée. C’est pratique pour simuler une activité récente, notamment pour les journaux d’audit ou le tri de fichiers.

Mise à jour en masse de plusieurs fichiers avec PowerShell

Le véritable atout de PowerShell réside dans le traitement par lots. Vous pouvez cibler plusieurs fichiers à l’aide de Get-ChildItem et parcourir chacun d’eux :

Get-ChildItem -Path "C:\Path\To\Files\*.txt" | ForEach-Object { Set-ItemProperty -Path $_. FullName -Name CreationTime -Value $NewDate Set-ItemProperty -Path $_. FullName -Name LastWriteTime -Value $NewDate }

Si vos fichiers se trouvent dans des sous-dossiers profonds, ajoutez -Recurse pour tout rassembler :

Get-ChildItem -Path "C:\Path\To\Files" -Recurse -Filter "*.txt" | ForEach-Object { Set-ItemProperty -Path $_. FullName -Name CreationTime -Value $NewDate Set-ItemProperty -Path $_. FullName -Name LastWriteTime -Value $NewDate }

PowerShell traitera tous les fichiers correspondants sans problème. N’oubliez pas que, pour les commandes multilignes, il faut appuyer sur Shift + EnterEntrée après chaque ligne et laisser la dernière ligne sans autre touche.

FAQ

Que sont les attributs d’horodatage des fichiers sous Windows ?

Ils indiquent la date de création, de dernière modification et de dernier accès d’un fichier — un peu comme des empreintes digitales numériques.

L’invite de commandes peut-elle modifier les horodatages des fichiers sans outils ?

Non, Windows ne propose pas de commande native pour cela. Il vous faudra NirCmd ou un outil similaire.

PowerShell est-il préférable à CMD pour cette tâche ?

Absolument — PowerShell prend en charge nativement la définition de ces horodatages et offre davantage de contrôle et d’options de traitement par lots.

Quel format de date NirCmd exige-t-il ?

Utilisez le format jj-mm-aaaa hh:mm:ss, sinon, il pourrait dysfonctionner ou se casser.

Puis-je faire cela pour plusieurs fichiers à la fois ?

Oui, PowerShell et CMD (avec NirCmd) prennent tous deux en charge le traitement par lots, il n’est donc pas nécessaire de traiter chaque fichier manuellement.

Ai-je besoin de droits d’administrateur ?

En général, oui. Surtout si vous modifiez l’horodatage de fichiers système ou de fichiers situés dans des dossiers protégés. Il est préférable d’exécuter la commande en tant qu’administrateur pour éviter tout problème d’autorisation.