PDA

Vollständige Version anzeigen : Logdatei per Batch erzeugen und befüllen


marvin13
22.07.2008, 13:37
Hallo zusammen,

ich habe eine kleine batch-Datei, die jede Nacht ausgeführt wird und andere Programme anstößt zur Datenaktualisierung. Ich habe bereits eine kleine Ausgabe in eine Logdatei eingebaut. Habs bisher aber nur geschafft, immer in die selbe Datei auszugeben, also hinten anzuhängen. Die batch-Datei hab ich als schedulded Task in Windows gehängt. Dort habe ich auch die Ausgabedatei angegeben.

Meine Wunschvorstellung wäre jetzt folgendes: Die batch-Datei wird über den schedulded Task aufgerufen. Zu Beginn wird eine Datei erstellt (am liebsten natürlich mit dem aktuellen Datum) in diese Datei werden die Ausgaben geschrieben (Fehlermeldungen zb von einem net send befehl).

Stand ist wie gesagt, dass ich immer an die selbe Datei hinten dran schreibe. Da der Job täglich ausgeführt wird, wird die Logdatei entsprechend unübersichtlich.

vielen Dank im Voraus schon mal

Joachim Hofmann
23.07.2008, 10:25
Probier mal dieses:
<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet">

<span style="background-color: #ffffff"><font color="#008000">:: erzeuge datei heutigen Datums</font></span><br>
<font color="#804040"><b>FOR</b></font>&nbsp;<font color="#6a5acd">/F</font>&nbsp;<font color="#ff00ff">&quot;usebackq tokens=</font><font color="#ff00ff">1</font><font color="#ff00ff">,2,3 delims=. &quot;</font>&nbsp;<font color="#008080">%%D</font>&nbsp;IN (`<font color="#008080">DATE</font>&nbsp;<font color="#6a5acd">/t</font>`) DO <font color="#008080">ECHO</font><font color="#ff00ff">&nbsp;</font><font color="#008080">%%F</font><font color="#ff00ff">-</font><font color="#008080">%%E</font><font color="#ff00ff">-</font><font color="#008080">%%D</font><font color="#ff00ff">&nbsp;</font>&gt; <font color="#008080">%%F</font>-<font color="#008080">%%E</font>-<font color="#008080">%%D</font>.txt<br>
</font>

</div>

marvin13
23.07.2008, 15:27
Hallo Joachim,

vielen Dank, werd ich gleich mal einbauen.

Wie kann ich ihm jetzt aber diese Datei als Ausgabe übergeben? Ich hab bis jetzt meine log.txt im scheduled task mit ">> log.txt" angehängt. Muss ich jetzt diese komische konstruktion wählen, und hinter jeder zeile den dateinamen angeben?

vg

Joachim Hofmann
24.07.2008, 18:25
Hallo,

hier wird der Dateiname in einer Variablen gespeichert und kann dann außerhalb des FOR verwendet werden.
das komische enabledelayedexpansion usw. ist nötig, damit in einem FOR mit SET gearbeitet werden kann.
Innerhalb des FOR wird dann die !!-Notation verwendet.

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet">

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>c:\Temp\test2.bat.html</title>
<meta name="Generator" content="Vim/7.2">
</head>
<body bgcolor="#ffffff" text="#000000"><font face="monospace">
<span style="background-color: #ffffff"><font color="#008000">:: erzeuge datei heutigen Datums</font></span><br>
<span style="background-color: #ffffff"><font color="#008000">:: und benutze diese mit Variable </font></span><font color="#008080">%dateiname%</font><br>
<font color="#008080">SETLOCAL</font>&nbsp;enabledelayedexpansion <br>
<font color="#804040"><b>FOR</b></font>&nbsp;<font color="#6a5acd">/F</font>&nbsp;<font color="#ff00ff">&quot;usebackq tokens=</font><font color="#ff00ff">1</font><font color="#ff00ff">,2,3 delims=. &quot;</font>&nbsp;<font color="#008080">%%D</font>&nbsp;IN (`<font color="#008080">DATE</font>&nbsp;<font color="#6a5acd">/t</font>`) DO (<br>
<font color="#008080">ECHO</font><font color="#ff00ff">&nbsp;</font><font color="#008080">%%F</font><font color="#ff00ff">-</font><font color="#008080">%%E</font><font color="#ff00ff">-</font><font color="#008080">%%D</font><font color="#ff00ff">&nbsp;</font>&gt; <font color="#008080">%%F</font>-<font color="#008080">%%E</font>-<font color="#008080">%%D</font>.txt<br>
<font color="#008080">SET</font><font color="#008080">&nbsp;dateiname</font><font color="#804040"><b>=</b></font><font color="#008080">%%F</font>-<font color="#008080">%%E</font>-<font color="#008080">%%D</font>.txt<br>
<font color="#008080">ECHO</font><font color="#ff00ff">&nbsp;</font><font color="#008080">!dateiname!</font><br>
)<br>
<font color="#008080">ECHO</font><font color="#ff00ff">&nbsp;nochwas </font>&gt;&gt; <font color="#008080">%dateiname%</font><br>
<font color="#008080">SETLOCAL</font>&nbsp;disabledelayedexpansion <br>
</font></body>
</html>

</div>