Batch, counter (in txt dokoument einfügen)
Ein script um ein Protokoll zu schreiben.
hallo,
ich habe mir mal was gebastelt und zwar eine batch datei,
mit der man den PC herunterfahren kann und dann datum und zeit in ein protokoll übertragen werden.(txt dokument)
Sieht so aus:
@echo off
echo in wie viel sekunden soll heruntergefahren werden ?
set /p nachricht=Bitte eingeben:
shutdown -s -t %nachricht%
echo C:\Users\laurenz\Desktop\zickzack.txt
echo _____________________________________ >> zickzack.txt
echo PC sollte am %date% >> zickzack.txt
echo um %time% heruntergefahren werden. >> zickzack.txt
echo nach %nachricht% sekunden >> zickzack.txt
exit
im txt dokument sieht das so auß:
_____________________________________
PC sollte am 18.07.2011
um 20:01:20,01 heruntergefahren werden.
nach 2 sekunden
_____________________________________
PC sollte am 18.07.2011
um 20:01:24,86 heruntergefahren werden.
nach 6 sekunden
es sollte aber noch mit einem Zähler versehen sein.
also in etwa so aussehen:
_____________________________________
1.
PC sollte am 18.07.2011
um 20:01:20,01 heruntergefahren werden.
nach 2 sekunden
_____________________________________
2.
PC sollte am 18.07.2011
um 20:01:24,86 heruntergefahren werden.
nach 6 sekunden
das der dann halt immer so weiterzählt.
Wenn jemand eine Lösung weiß bitte sagen.
Wenns garnet möglich ist bitte auch sagen, dann brauch ich mir net mehr den kopf drüber zu zerbrechen.
Ich danke euch im vorraus
LG
hallo,
ich habe mir mal was gebastelt und zwar eine batch datei,
mit der man den PC herunterfahren kann und dann datum und zeit in ein protokoll übertragen werden.(txt dokument)
Sieht so aus:
@echo off
echo in wie viel sekunden soll heruntergefahren werden ?
set /p nachricht=Bitte eingeben:
shutdown -s -t %nachricht%
echo C:\Users\laurenz\Desktop\zickzack.txt
echo _____________________________________ >> zickzack.txt
echo PC sollte am %date% >> zickzack.txt
echo um %time% heruntergefahren werden. >> zickzack.txt
echo nach %nachricht% sekunden >> zickzack.txt
exit
im txt dokument sieht das so auß:
_____________________________________
PC sollte am 18.07.2011
um 20:01:20,01 heruntergefahren werden.
nach 2 sekunden
_____________________________________
PC sollte am 18.07.2011
um 20:01:24,86 heruntergefahren werden.
nach 6 sekunden
es sollte aber noch mit einem Zähler versehen sein.
also in etwa so aussehen:
_____________________________________
1.
PC sollte am 18.07.2011
um 20:01:20,01 heruntergefahren werden.
nach 2 sekunden
_____________________________________
2.
PC sollte am 18.07.2011
um 20:01:24,86 heruntergefahren werden.
nach 6 sekunden
das der dann halt immer so weiterzählt.
Wenn jemand eine Lösung weiß bitte sagen.
Wenns garnet möglich ist bitte auch sagen, dann brauch ich mir net mehr den kopf drüber zu zerbrechen.
Ich danke euch im vorraus
LG
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 169975
Url: https://administrator.de/contentid/169975
Ausgedruckt am: 23.11.2024 um 02:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo carp-catcher,
teste mal folgendes:
Hilfe zum
Gruß
Friemler
teste mal folgendes:
@echo off & setlocal
set "ProtocolFile=%UserProfile%\Desktop\zickzack.txt"
echo In wieviel Sekunden soll heruntergefahren werden?
set /p "delay=Bitte eingeben: "
::Wenn das Script zum ersten mal gestartet wird, existiert die Protokolldatei
::noch nicht. Deshalb eine leere Datei anlegen, damit die folgenden Schleifen
::keine Fehler verursachen und den Zähler auf eins setzen (für den ersten Eintrag).
if not exist "%ProtocolFile%" (
type NUL > "%ProtocolFile%"
set "Cntr=1"
)
::Nach der Nummer der letzten Zeile suchen, die mit einem "_" beginnt
::Diese Nummer um eins erhöht ist die Zeile mit dem Zähler
for /f "delims=:" %%c in ('findstr /b /n /l "_" "%ProtocolFile%"') do (
set /a "LastEntry=%%c+1"
)
::Protokolldatei vollständig einlesen
::Wenn die eben bestimmte Zeile gelesen wird,
::den Zähler auslesen und um eins erhöhen
for /f "tokens=1,2 delims=:." %%l in ('findstr /n "^" "%ProtocolFile%"') do (
if "%%l" equ "%LastEntry%" set /a "Cntr=%%m+1"
)
>>"%ProtocolFile%" echo _
>>"%ProtocolFile%" echo %Cntr%.
>>"%ProtocolFile%" echo PC sollte am %date%
>>"%ProtocolFile%" echo um %time% heruntergefahren werden.
>>"%ProtocolFile%" echo Nach %delay% Sekunden.
echo shutdown -s -t %delay%
Hilfe zum
FINDSTR
-Befehl liefert findstr /?
, zum FOR
-Befehl siehe for /?
bzw. mein Tutorial zur FOR-Schleife.Gruß
Friemler
Aloha,
nun entweder so:
oder eben so:
greetz André
edit: genau wie gestern; kurz mal am Telefon *gg* schon friemelt sich jemand zwischen, hehe
nun entweder so:
@echo off & setlocal
set "Z=C:\Users\laurenz\Desktop\Anzahl.txt"
set /a Anzahl=0
if exist "%Z%" set /p Anzahl=<"%Z%"
set /a Anzahl+=1
>"%Z%" echo %Anzahl%
echo In wie vielen Sekunden soll heruntergefahren werden ?
set /p nachricht=Bitte eingeben:
shutdown -s -t %nachricht%
echo C:\Users\laurenz\Desktop\zickzack.txt
(echo _
echo %Anzahl%
echo PC sollte am %date%
echo um %time% heruntergefahren werden.
echo nach %nachricht% Sekunden
echo\)>>"zickzack.txt"
goto :eof
oder eben so:
@echo off & setlocal enabledelayedexpansion
set "D=C:\Users\laurenz\Desktop\zickzack.txt"
if exist "%D%" (goto :Zahl) else (goto :Datei)
set /a Anzahl=0
:Zahl
for /f "usebackq" %%s in ("%D%") do (
set Var=%%s
set "Anzahl=!3!"
set "3=!2!"
set "2=!1!"
set "1=!Var!"
)
:Datei
set /a Anzahl+=1
echo In wie vielen Sekunden soll heruntergefahren werden ?
set /p nachricht=Bitte eingeben:
shutdown -s -t %nachricht%
echo C:\Users\laurenz\Desktop\zickzack.txt
(echo _
echo %Anzahl%
echo PC sollte am %date%
echo um %time% heruntergefahren werden.
echo nach %nachricht% Sekunden
echo\)>>"zickzack.txt"
goto :eof
greetz André
edit: genau wie gestern; kurz mal am Telefon *gg* schon friemelt sich jemand zwischen, hehe