84075
Goto Top

Logfile anlegen bevor eine batch ausgeführt wird

Hallo Leute,

mit dem folgendem Skript stoppe ich bestimmte Lizenzdienste die sich im genannten Verzeichnis befinden. Wird der Lizezdienst gestartet so wird auch eine Logfile in dem Verzeichnis abgelegt das man sich ausgesucht hat. Die logfile heisst dasnn license.log

So nun möchte ich aber wenn ich den Lizenzdienst stoppe mit dem folgendem batch das er mir davor die aktuelle Logfile sichert mit einem Timestamp. Zweck ist es das die Logfile nicht überschrieben wird wenn ich den Dienst stoppe (somit wären ältere Log-Einträge weg).

Skript zum stoppen von Services die im Verzeichnis E:\flexlm liegen:
@echo off & setlocal
echo SERVICES:
dir E:\flexlm/b /AD
SET /p servicename=Bitte geben Sie den Service ein den Sie stoppen wollen:
dir E:\flexlm/S /AD |find /i "%servicename%"&& goto start  
goto error
:start
sc \\server01 stop "%servicename%"  
sc \\server02 stop "%servicename%"  
sc \\server03 stop "%servicename%"  
PAUSE

Content-Key: 148287

Url: https://administrator.de/contentid/148287

Ausgedruckt am: 28.03.2024 um 22:03 Uhr

Mitglied: 84075
84075 04.08.2010 um 10:34:46 Uhr
Goto Top
reicht das aus wenn ich das ins obige Skript einbaue?
copy license.log >E:\flexlm\SERVICENAME\license_%date%.log
Mitglied: 60730
60730 04.08.2010 um 10:36:10 Uhr
Goto Top
Moin,

nimm dir mal des Bibers Tutorial Batch for Runaways Part? - werkeln mit Datum vor.

Da beschreibt er vorzügliche alle eventualitäten und Befehle.
Da jetzt für dich einen extract zu bilden, würde den Sinn - der hinter Bibers Tut steht - untergraben.

Gruß

edit - das "könnte", aber näheres findest du in Bibers Tut - denn %date% und %date% auf verschiedenen Maschinen ist nicht immer das gleiche. /edit
Mitglied: Friemler
Friemler 04.08.2010 um 11:00:05 Uhr
Goto Top
Hallo cyaency,

naja, wenn müsste es so heißen:
copy E:\flexlm\license.log "E:\flexlm\%SERVICENAME%\license_%date%.log"  

Dazu muss der Ordner %SERVICENAME% schon existieren.

Gruß
Friemler
Mitglied: 84075
84075 04.08.2010 um 11:10:54 Uhr
Goto Top
naja leider klappt das nicht. Er kopiert zwar die log file in das genannte Verzeichnis jedoch mit dem Namen: license_%date%.log. Er schreibt also nicht das Datum rein in den filename sonder %date%
Mitglied: 60730
60730 04.08.2010 um 11:20:17 Uhr
Goto Top
Moi ihr zwei beiden...


bitte bitte bitte mit 444 Blümchen und 555 Sternchen

Der Biber hat sich mal Mühe gegeben und jeder der das gelesen hat, kann es auch verstehen.
Das alles immer und immer wieder wiederkauen zu müssen ist mühsam und wird Meister Bibers Arbeit nicht gerecht.

Zitat von @Friemler:
Hallo cyaency,

naja, wenn müsste es so heißen:
Gruß
Friemler

Nein - siehe Bibers Anleitung - müssen muß da garnix können kann eher sein....

Aber wie jetzt zum 3. Mal des Bibers Tut klärt das alles....

Gruß
edit ich finds ja schön, wenn die beiden mit der meisten Erfahrung in Sachen Fragen stellen, die man im Tiefschlaf beantworten kann - sich gegenseitig helfen wollen - aber nicht wenn es eine 4? <edit> 5 </edit> Jahre alte Anleitung gibt, die alles erklärbärt.
Und wenn Ihr die Anleitung dann gelesen und verstanden habt, das "Voting" bitte nicht vergessen.
/edit
Mitglied: 84075
84075 04.08.2010 um 11:24:35 Uhr
Goto Top
ich finde zwar tuts von ihm aber keinen abschnitt mit "werkeln mit Datum"
Mitglied: 60730
60730 04.08.2010 um 11:29:27 Uhr
Goto Top
Zitat von @84075:
ich finde zwar tuts von ihm aber keinen abschnitt mit "werkeln mit Datum"


Nachdem du heute eben gerade erfolgreich den Kurs:
  • Wie lasse ich andere Leute unentgeltlich für mich suchen
bestanden hast - gehts morgen weiter bei den Kursen:

  • Wo ist der Einschalter meines Computers und was passiert, wenn ich Ihn benutze
  • Wenn das geklappt hat, dann gibts den Folgekurs Suchfunktion für Administratoren.

Gruß
Mitglied: 84075
84075 04.08.2010 um 11:33:42 Uhr
Goto Top
wollte es damit machen:

@echo off & setlocal

REM Datumsvariablen systemspezifisch aufbereiten
if %windir%==C:\WINNT   for /f "tokens=2-4 delims=. " %%a in ('date /t') do set dd=%%a&set mm=%%b&set yyyy=%%c  
if %windir%==C:\WINDOWS for /f "tokens=1-3 delims=. " %%a in ('date /t') do set dd=%%a&set mm=%%b&set yyyy=%%c  
if %windir%==C:\WINDOWS for /f "tokens=1-2 delims=: " %%a in ('time /t') do set hh=%%a&set mi=%%b  

echo SERVICES:
dir E:\flexlm /b /AD
SET /p servicename=Bitte geben Sie den Service ein den Sie stoppen wollen:
dir E:\flexlm /S /AD |find /i "%servicename%"&& goto start  
goto error
:start
xcopy E:\flexlm\%servicename%\license.log E:\flexlm\%servicename%\license.log_%date%\
sc \\server01 stop "%servicename%"  
sc \\server02 stop "%servicename%"  
sc \\server03 stop "%servicename%"  
PAUSE

Nun erzeugt er mir ja ein Verzeichnis mit Datum...Nur würde ich gerne kein Verzeichnis angelegt bekommen sondern das der Filename so genändert wird das das Datum im Dateinamen drinsteht
Mitglied: 60730
60730 04.08.2010, aktualisiert am 18.10.2012 um 18:43:02 Uhr
Goto Top
Zitat von @84075:
wollte es damit machen:

> @echo off & setlocal
Mitglied: 84075
84075 04.08.2010 um 15:13:47 Uhr
Goto Top
Habe das ganze nun gelöstface-smile noch ne letzt Frage. Wenn ich das Datum definiere gehe ich so vor:
if %windir%==C:\WINDOWS for /f "tokens=1-3 delims=. " %%a in ('date /t') do set dd=%%a&set mm=%%b&set yyyy=%%c  

Wenn ich aber die Zeit definieren will, dann geht das so nicht:
if %windir%==C:\WINDOWS for /f "tokens=1-3 delims=. " %%a in ('time /t') do set hh=%%a&set mi=%%b&set  
Mitglied: Friemler
Friemler 04.08.2010 um 15:55:23 Uhr
Goto Top
Hallo cyaency,

die Option delims der FOR-Schleife legt fest, welches Zeichen in der Ausgabe des Befehls in der Klammer (TIME /t oder DATE /t) als Trennzeichen zwischen den einzelnen Bestandteilen behandelt wird. Beim Datum ist das der Punkt, bei der Zeit der Doppelpunkt. Die Zeile für die Zeit müsste also lauten:

if %windir%==C:\WINDOWS for /f "tokens=1-2 delims=:" %%a in ('time /t') do set hh=%%a&set mi=%%b  

Der Befehl TIME /t gibt sowas wie 15:13 zurück, hat also nur zwei Bestandteile (15 und 13), deshalb tokens=1-2.

Das Leerzeichen bei "delims=: " ist überflüssig, da in der Ausgabe garkeine Leerzeichen vorkommen. Ist in der Zeile für das Datum ebenso.

Das zusätzliche &set war wohl ein copy&paste-Fehler.

Gruß
Friemler
Mitglied: 84075
84075 04.08.2010 um 16:03:52 Uhr
Goto Top
hmmm also irgendwie fügt er mir keine Zeit hinzu, sondern nur das Datum?!?!

@echo off & setlocal

REM Datumsvariablen systemspezifisch aufbereiten:
if %windir%==C:\WINDOWS for /f "tokens=1-3 delims=. " %%a in ('date /t') do set dd=%%a&set mm=%%b&set yyyy=%%c  
if %windir%==C:\WINDOWS for /f "tokens=1-2 delims=:" %%a in ('time /t') do set hh=%%a&set mi=%%b  

echo SERVICES:
dir C:\flexlm /b /AD
SET /p servicename=Bitte geben Sie den Service ein den Sie stoppen wollen:
dir C:\flexlm /S /AD |find /i "%servicename%"&& goto start  

goto error

:start
xcopy C:\flexlm\%servicename%\license.log E:\flexlm\%servicename%\logfiles
ren C:\flexlm\%servicename%\logfiles\license.log license_%DATE%_%TIME%.log

sc \\server01 stop "%servicename%"  
sc \\server02 stop "%servicename%"  
sc \\server03 stop "%servicename%"  
PAUSE
Mitglied: Friemler
Friemler 04.08.2010 um 16:22:36 Uhr
Goto Top
Hallo cyaency,

in Zeile 16 willst du ja Deine Datei umbenennen. Und was steht da? Und in welchen Variablen hast Du Zeit und Datum gespeichert?

Du kannst Dir den REN-Befehl sowieso sparen und das gleich mit XCOPY erledigen.

Gruß
Friemler
Mitglied: 84075
84075 04.08.2010 um 16:37:19 Uhr
Goto Top
- Datum definiert mit Variable ddmmyyyy ???
- Zeit definiert mit Variable hhmi ???
- REN Befehl entfernt und ins xcopy rein


@echo off & setlocal

REM Datumsvariablen systemspezifisch aufbereiten:
if %windir%==C:\WINDOWS for /f "tokens=1-3 delims=. " %%a in ('date /t') do set dd=%%a&set mm=%%b&set yyyy=%%c  
if %windir%==C:\WINDOWS for /f "tokens=1-2 delims=:" %%a in ('time /t') do set hh=%%a&set mi=%%b  

echo SERVICES:
dir C:\flexlm /b /AD
SET /p servicename=Bitte geben Sie den Service ein den Sie stoppen wollen:
dir C:\flexlm /S /AD |find /i "%servicename%"&& goto start  

goto error

:start
xcopy C:\flexlm\%servicename%\license.log E:\flexlm\%servicename%\logfiles\license_%DATE%_%TIME%.log

sc \\server01 stop "%servicename%"  
sc \\server02 stop "%servicename%"  
sc \\server03 stop "%servicename%"  
PAUSE
Mitglied: 60730
60730 04.08.2010 um 16:51:18 Uhr
Goto Top
n aaabend,

Zitat von @84075:
- Datum definiert mit Variable ddmmyyyy ???
- Zeit definiert mit Variable hhmi ???
- REN Befehl entfernt und ins xcopy rein


> @echo off & setlocal

sagschreib mal - der Schlauch auf dem du stehst, ist das ein Cat 5e oder schon Cat7?

Kannst du dir vorstellen, dass einige von uns sich köstlich amüsieren und dir keine weiteren Tipps geben - oder denkst du ernsthaft, dir hilft keiner, weil "denen das alles zu hoch ist?"

Du definierst einen Satz Variablen mit der Uhrzeit und wo benutzt du diese frisch gelegten Variablen dann?
Und nein - ich verstehe dein Vorhaben eh nicht - friemler fragt dic h und du antwortest mit ??? - als ob du gar nicht wüßtest, ob die Antwort stimmt.

Da sind meine beiden 11 und 12 Jahren alten Neffen aber etwas schneller
@echo off
@hallo echo
@hallo otto
@habe fertig
Mitglied: Friemler
Friemler 04.08.2010 um 17:08:18 Uhr
Goto Top
Hallo cyaency,

jetzt wird's mir auch zu bunt. Starte mal die brain.exe, vielleicht hilft das weiter.

Gruß
Friemler