Windows-batch-Datei umleiten Ausgabe in logfile mit Datum/Uhrzeit
Ich versuche ausführen einer batch-Datei die ausgeführt wird, eine ausführbare Datei und leitet die Ausgabe in eine log-Datei. Die log-Datei muss das Datum und die Uhrzeit als der name der Datei. Dies ist der Befehl den ich verwende:
"%PROGRAMFILES%\PostgreSQL\9.4\bin\vacuumdb.exe" --username postgres --verbose --analyze --all > E:\Logs\VacuumDB\%date:~10,4%_%date:~4,2%_%date:~7,2%_%time:~0,2%_%time:~3,2%_%time:~6,2%.log 2>&1
Dieser Befehl funktioniert beim einfügen direkt in cmd. Die log-Datei erstellt, wie erwartet '2015_06_25__11_20_46.log'. Jedoch, es funktioniert nicht, wenn eingefügt in eine batch-Datei, und führen Sie dann im cmd. Cmd interpretiert den Befehl wie folgt:
"C:\Program Files\PostgreSQL\9.4\bin\vacuumdb.exe" --username postgres --verbose --analyze --all 8_21_42.log 1>E:\Logs\VacuumDB\2015_06_26_ 2>&1
Beachten Sie, wie der Dateiname wird abgeschnitten, und jetzt ist die Zeit an den Befehl angefügt Argumente, anstatt in den Dateinamen. So offensichtlich schlägt der Befehl fehl.
Dies ist sicherlich etwas sehr einfach, aber ich habe nicht gefunden, einen Weg, um dieses Problem zu beheben. Jede Hilfe wird sehr geschätzt.
Danke!
> "E:\Logs\VacuumDB\%date:~10,4%_%date:~4,2%_%date:~7,2%_%time:~0,2%_%time:~3,2%_%time:~6,2%.log" 2>&1
InformationsquelleAutor sixtstorm1 | 2015-06-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein problem ist, dass die timestring darf keine Leerzeichen enthalten (vor 10 Uhr)
Sie können ersetzen Sie es mit einer null, aber ich empfehle einen Lösung unabhängig von der locale-Einstellungen:
Wird es geben, Sie (unabhängig von den locale-Einstellungen!):
von hier aus ist es einfach zu formatieren und Ihren Bedürfnissen. Zum Beispiel:
InformationsquelleAutor Stephan
Vielleicht die einfachste Lösung für Sie sein diese eine:
Gut, Sie hat nicht angegeben, dass Sie hatten die lokalen Probleme. Nach deinem Beispiel-code, Sie sagte: "Die log-Datei erstellt, wie erwartet '2015_06_25__11_20_46.log'"...
:/
Ja, ich weiß, aber ich habe versucht, Ihr Beispiel und es gibt das falsche format auf mein Ende (weil mein Gebietsschema fr-CA), und dass zeigt die locale-problem. Da kann ich nur wählen Sie eine anwser ich wählte die eine, die behoben die locale-problem... Sorry, aber ich habe Sie sowieso...
Ich denke, es ist ein Durcheinander hier. Ich kopieren-einfügen den code und fügte gerade die Ersetzung von Leerzeichen durch Nullen, so dass alle substring-Positionen sind genau das gleiche, die Sie geschrieben, bevor "Die log-Datei erstellt, wie erwartet". Aber in deinem vorherigen Kommentar sagte Sie, dass die gleiche Teilstrings "Ausgänge das falsche format auf mein Ende (weil mein Gebietsschema fr-CA)"??? I don ' T care rep-Punkte, aber klar, dieses detail ist wichtig für mich, weil Englisch nicht meine primäre Sprache. Ich möchte, dass Sie beachten, wenn ich missverstanden einem gewissen Punkt, bitte; sonst kann ich nur erwarten, dass Sie sagen: "Mein Fehler, entschuldigen Sie mich..."
:/
Ich klebte Ihre Lösung auf einem anderen computer, der ein anderes Gebietsschema als die, die ich verwendet, um zu erhöhen meine ursprüngliche problem, das ist, was passiert ist und warum es die Ausgabe eines falschen format. Das andere Mitglied tatsächlich vorausgesehen hat ein problem, das ich eigentlich gar nicht erhöhen, und dachte über etwas, das könnte irgendwann entpuppen zu sein ein problem (und ich fand mich, es ist). Also ja, deine Lösung hat das problem lösen, das ich ursprünglich gebucht, es besteht kein Zweifel, dass. Niemand kann die Schuld auf dieses. Danke für deine Antwort und die Zeit nehmen, um zu versuchen und helfen Sie mir...
InformationsquelleAutor Aacini
Versuchen, wie dieser Weg :
Oder ich habe eine andere Lösung von foxidrive :
InformationsquelleAutor Hackoo
Hier ist ein Inline-version ohne Verwendung von SET-Befehl
Diesem Beispiel wird die Ausgabe von C:\test.bat und schreiben ein Protokoll namens test_YYYYMMDD-HHMMSS.melden Sie der C:\log Verzeichnis
Ausgabedatei Beispiel: c:\log\test_20181008-1121.log
InformationsquelleAutor Stevie G