20366

Erinnerung per .bat

Zyklische Erinnerung per msgBox

Hallo!
Ich möchte gern erreichen, dass eine Batch-Datei auf einem Rechner, auf dem ich keine Adminrechte habe, per Verknüpfung im Autostart angesprochen wird, die dann alle drei Stunden eine msgBox mit einem Erinnerungstext generiert.
Kann mir da jemand behilflich sein??

THX

Gerhard
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 86758

Url: https://administrator.de/forum/erinnerung-per-bat-86758.html

Ausgedruckt am: 03.05.2025 um 05:05 Uhr

bastla
bastla 30.04.2008, aktualisiert am 18.10.2012 um 18:35:40 Uhr
Goto Top
Hallo Gerhard_Kuntz!

Für die Zeitsteuerung könntest Du diesen Beitrag als Grundlage nehmen, für die msgBox wirst Du um VBS nicht herumkommen - lässt sich allerdings in den Batch integrieren nach etwa folgendem Schema:
@echo off & setlocal
set Msg=%temp%\MsgBox.vbs
echo WScript.Echo MsgBox("Soll diese Erinnerung in 3 Stunden wiederholt werden?",vbYesNo,"Erinnerung")>%Msg%  
for /f %%i in ('cscript //nologo %Msg%') do set Wh=%%i  
if %Wh%==6 (echo Wiederholung) else (echo Keine Wiederholung)

Grüße
bastla
bastla
bastla 01.05.2008 um 12:02:47 Uhr
Goto Top
... da ich mich inzwischen entschlossen habe, auch den nicht ganz unwesentlichen Teil "... auf dem ich keine Adminrechte habe ..." zur Kenntnis zu nehmen face-wink, eine zwar etwas behübschte, aber trotzdem alles andere als schöne Alternative (insbesondere natürlich auch hinsichtlich der erforderlichen Passworteingabe) unter Verwendung der im oben verlinkten Beitrag beschriebenen Zeitberechnungsroutine und ohne zusätzliche Tools (verwendbar ab XP):
@echo off & setlocal
mode con cols=60 lines=10
color 1e
title Erinnerung

echo Erinnerungstext
echo\
echo Um diese Erinnerung in 3 Stunden zu wiederholen,
echo bitte Passwort eingeben, ansonsten nur ENTER ...
echo\

:: Dauer bis zum naechsten Start (in Minuten angegeben)
call :TIMEADD 180
 
set GP=%temp%\GetPasswd.vbs
echo WScript.Echo CreateObject("ScriptPW.Password").GetPassword()>%GP%  
for /f "delims=" %%i in ('cscript //nologo %GP%') do set "PW=%%i"  
echo j|SCHTASKS /Delete /TN Erinnerung >nul 2>&1
echo \|SCHTASKS /Create /RU %Username% /RP %PW% /SC einmal /TN Erinnerung /ST %newTime% /TR "%~s0" >nul 2>&1  
goto :eof

:TIMEADD
For /F "Tokens=1,2 Delims=:" %%J In ("%time%") Do (  
     Set hour=%%J
     Set minutes=%%K
)
set /a delayhours=0
set /a newMins=%1 + %minutes%
if %newMins% GTR 59 set /a delayHours=%newMins%/60
if %newMins% GTR 59 set /a newMins=%newMins% %% 60
set /a newhour=(%hour%+%delayHours%) %% 24
If %newhour% LEQ 9 set newhour=0%newhour%
If %newmins% LEQ 9 set newmins=0%newmins%
set newTime=%newhour%:%newmins%:00

Grüße
bastla
20366
20366 01.05.2008 um 14:16:43 Uhr
Goto Top
erstmal vielen Dank!!

Was ich nicht verstehe ist die Passworteingabe.

Kann das nicht einfach mit der Entertaste ausgeblendet werden und nach 180 Minuten wieder erscheinen?

Grüße

Gerhard
bastla
bastla 01.05.2008 um 19:23:17 Uhr
Goto Top
Hallo Gerhard_Kuntz!

Kann das nicht einfach mit der Entertaste ausgeblendet werden und nach 180 Minuten wieder erscheinen?
Vermeiden ließe sich die Passworteingabe durch das Speichern des Passworts im Klartext - nicht wirklich erstrebenswert - oder die Umstellung auf einen Batch, der im Hintergrund weiterläuft und, zB unter Verwendung von "sleep.exe" (aus den Windows Server 2003 Resource Kit Tools), eine Pause bis zur nächsten Meldung einlegt (die könntest Du dann wieder über die VBS-MsgBox ausgeben) ...

Grüße
bastla