2010-09-30 6 views
7

Ich möchte die Ausgabe eines Befehls (in der Windows-Befehlszeile) in eine Datei umleiten, deren Name das aktuelle Datum und die Uhrzeit ist. Zum Beispiel:Wie umleiten Sie die Ausgabe in eine Datei, deren Name das aktuelle Datum und die Uhrzeit ist?

my_path\mysqldump.exe my_database_name > auto_generated_file_name 

wo auto_generated_file_name sollte so etwas wie 2010_09_30___11_41_58.txt sein.

Dieser Befehl wird automatisch von Zeit zu Zeit ausgeführt. Aus diesem Grund muss der Dateiname automatisch generiert werden.

Was ist die einfachste Methode, um dies zu erreichen?

Antwort

7

Der folgende Befehl erstellt eine leere Datei mit dem erwarteten Dateinamen:

> 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 

Sie das Teil nach type nul > anstelle Ihrem auto_generated_file_name verwenden können.

+0

Vielen Dank !! –

+1

Problem ist, dass dies stark abhängig von Ihrem Gebietsschema ist - Für mich produzierte es: '017_0._1 .__ 10_41_13.txt' – JaKu

+0

Mit'% time: ~ 0,2% 'fügt ein Leerzeichen zu Ihrem Dateinamen am Morgen hinzu. Zitiere den Dateinamen in deinem Befehl, um Windows mitzuteilen, dass es OK ist. – atheaos

3

Es gibt ein nice solution here, und sie paßt fast Ihr Beispiel Formatierung:

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

Ausgang: "MyFile__22_05_2009__6_20.txt"

Verwandte Themen