2010-09-30 6 views
7

Je voudrais rediriger la sortie d'une commande (dans la ligne de commande Windows) vers un fichier dont le nom est la date et l'heure actuelles. Par exemple:Comment rediriger la sortie vers un fichier dont le nom est la date et l'heure actuelles?

my_path\mysqldump.exe my_database_name > auto_generated_file_name 

auto_generated_file_name devrait être quelque chose comme 2010_09_30___11_41_58.txt.

Cette commande va s'exécuter automatiquement de temps en temps. C'est la raison pour laquelle j'ai besoin que le nom de fichier soit généré automatiquement.

Quelle est la méthode la plus simple pour y parvenir?

Répondre

7

La commande suivante crée un fichier vide avec le nom du fichier attendu:

> type nul > %date:~10,4%_%date:~4,2%_%date:~7,2%__%time:~0,2%_%time:~3,2%_%time:~6,2%.txt 

> dir /b 
2010_09_29__22_12_44.txt 

Vous pouvez utiliser la partie après type nul > en place de votre auto_generated_file_name.

+0

Merci beaucoup !! –

+1

Problème est que cela dépend fortement de votre locale - Pour moi, il a produit: '017_0._1 .__ 10_41_13.txt' – JaKu

+0

En utilisant'% time: ~ 0,2% 'ajoute un espace à votre nom de fichier le matin. Citez le nom de fichier dans votre commande pour dire à Windows que c'est OK. – atheaos

3

Il y a une nice solution here, et il correspond à presque votre exemple mise en forme:

set dd = %date% %Time% 
my_command > MyFile__%dd:~0,2%_%dd:~3,2%_%dd:~6,4%___%dd:~11,2%_%dd:~14,2%.txt 

Sortie: "MyFile__22_05_2009__6_20.txt"

Questions connexes