35 votes

Date actuelle dans le nom du fichier

J'ai programmé une sauvegarde script qui fait le dump de la base de données. Comment puis-je ajouter l'horodatage de la date au nom du fichier ?

Je parle de Windows et de CMD.

36voto

eapolinario Points 1

Dans l'invite de commande et les fichiers batch, vous pouvez utiliser %date% y %time% pour retourner la date et l'heure respectivement. La date fonctionne bien, mais la valeur de l'heure renvoyée contient des deux-points, qui sont illégaux dans les noms de fichiers, mais il existe un moyen de les supprimer.

Utilisez quelque chose comme :

COPY file.txt file_%time:~0,2%%time:~3,2%%time:~6,2%_%date:~-10,2%%date:~-7,2%%date:~-4,4%.txt

Cela produira un nom de fichier tel que file_172215_01062009.txt

更新しています。 Les commentaires ci-dessous donnent des tournures intéressantes à cette commande ainsi que des problèmes potentiels que vous pouvez éviter.

25voto

Christian Deger Points 503

を使用します。 %DATE% et/ou %TIME des variables d'environnement, en substituant éventuellement les caractères qui ne sont pas autorisés dans les noms de fichiers, en utilisant %name:from=to% ( %TIME::=% supprimerait tous les deux-points).

theory » echo %date%
2009-06-01

theory » echo %time%
16:30:41,46

theory » echo %time::=%
163052,17

theory » echo %time::=,%
16,30,58,68

theory » echo backup-%date%-%time::=-%.zip
backup-2009-06-01-16-31-18,82.zip

13voto

Eric Ouellet Points 283

Le seul moyen fiable d'obtenir une date appropriée, quel que soit le paramètre régional, est la solution de foxidrive @. https://stackoverflow.com/questions/11037831/filename-timestamp-in-Windows-cmd-batch-script

@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"

set "datestamp=%YYYY%%MM%%DD%" & set "timestamp=%HH%%Min%%Sec%"
set "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
echo datestamp: "%datestamp%"
echo timestamp: "%timestamp%"
echo fullstamp: "%fullstamp%"
pause

1voto

John Sibly Points 9805

Utilisez la variable %DATE% dans le nom du fichier.

Il existe également une variable %TIME%, mais elle contient des caractères non autorisés dans un nom de fichier.

Voici un exemple d'écriture d'une ligne de texte dans un nouveau fichier, où le fichier créé a une date et une heure dans son nom.

echo "testfile" >> backup-%DATE%.txt

0voto

programmer365 Points 251

を使用します。 %date% y %time% et vous pouvez utiliser For /f pour analyser les mots délimités par / ou le format spécifique local pour changer de format.

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