20366
Goto Top

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

Content-Key: 86758

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

Printed on: April 18, 2024 at 05:04 o'clock

Member: bastla
bastla Apr 30, 2008, updated at Oct 18, 2012 at 16:35:40 (UTC)
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
Member: bastla
bastla May 01, 2008 at 10:02:47 (UTC)
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
Mitglied: 20366
20366 May 01, 2008 at 12:16:43 (UTC)
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
Member: bastla
bastla May 01, 2008 at 17:23:17 (UTC)
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