Choice länger warten als 99 Sekunden?
Kann man bei Choice eine längere Wartezeit angeben als 99 Sekunden?
Hi Leute,
Ich habe mir mit CHoice eine Auswahlfrage geschrieben:
Leider geht der Choice Befehl immer schon nach 60 Sekunden weiter!
Ich vermute dass Choice nur zweistellige Zahlen mit dem /t Parameter verarbeiten kann.
Ich brauche aber in meinem Script eine Zeitspanne von ca. 10 Minuten!
Kann mir jemand einen Tipp geben, ob das mit Choice überhaupt geht?
Oder gibt es vielleicht andere Programme die Eingaben in einem Batch zulassen??
Hi Leute,
Ich habe mir mit CHoice eine Auswahlfrage geschrieben:
%utildir%\choice /cjn /t:n,600 j=ja oder n=nein
if errorlevel 2 goto Meldung
if errorlevel 1 goto OK
Leider geht der Choice Befehl immer schon nach 60 Sekunden weiter!
Ich vermute dass Choice nur zweistellige Zahlen mit dem /t Parameter verarbeiten kann.
Ich brauche aber in meinem Script eine Zeitspanne von ca. 10 Minuten!
Kann mir jemand einen Tipp geben, ob das mit Choice überhaupt geht?
Oder gibt es vielleicht andere Programme die Eingaben in einem Batch zulassen??
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 118581
Url: https://administrator.de/contentid/118581
Ausgedruckt am: 08.11.2024 um 07:11 Uhr
14 Kommentare
Neuester Kommentar
Hallo pbelcl!
Eine andere Alternative zudem, was "Destry" bereits genannt hat, währe das hier:
Speichere diesen Quelltext z.B. unter wait.vbs
Füge in Deiner Batch diesen Befehl mit Angabe der Zeit in Sekunden ein
Gruß Dieter
Eine andere Alternative zudem, was "Destry" bereits genannt hat, währe das hier:
Speichere diesen Quelltext z.B. unter wait.vbs
if wscript.arguments.count > 0 Then t=wscript.arguments(0): if isnumeric(t) then wscript.sleep t * 1000
Füge in Deiner Batch diesen Befehl mit Angabe der Zeit in Sekunden ein
@cscript //nologo wait.vbs 600
Gruß Dieter
... wobei pbelcl vielleicht eher an etwas in der Art gedacht haben dürfte:
Grüße
bastla
@echo off & setlocal
Set Sek=600
Set Text="Entscheide Dich!"
set F=%temp%\Frage.vbs
>%F% echo WScript.Echo WScript.CreateObject("WScript.Shell").PopUp(%Text%,%Sek%,,4)
for /f %%i in ('cscript //nologo %F%') do set "Antwort=%%i"
if %Antwort%==6 goto :OK
if %Antwort%==-1 echo Keine Antwort ist auch eine Antwort. & goto :eof
echo Na gut, dann nicht ...
goto :eof
:OK
echo OK
bastla
Hallo bastla!
Hmh, das könnte gut sein
Gruß Dieter
Hmh, das könnte gut sein
Gruß Dieter
Hallo pbelcl!
Nein, das habe ich im Gegensatz zu "bastla" nicht bedacht und daher nur ein Warten nach der Abfrage angenommen.
Gruß Dieter
Nein, das habe ich im Gegensatz zu "bastla" nicht bedacht und daher nur ein Warten nach der Abfrage angenommen.
Gruß Dieter
Hallo pbelcl!
Als VBScript könnte das etwa so aussehen:
Die Pfade in den Zeilen 4 und 27 sind vermutlich noch anzupassen, und getestet habe ich nur unter XP Pro. Noch eine Anmerkung: Als Soundfile kannst Du kein ".mp3", sondern nur ".wav" verwenden.
Das Script wirst Du vermutlich per "Geplantem Task" starten; es läuft bis zur ersten Entscheidung "Ja" oder "Nein" bzw bis die in Zeile 2 angegebene Zeit in Sekunden erreicht ist.
Eine Literaturempfehlung habe ich leider nicht anzubieten, aber vielleicht findest Du unter den eingetragenen etwas Passendes (etwa gleich den zweiten)...
Grüße
bastla
Als VBScript könnte das etwa so aussehen:
Intervall = 120 'Sekunden bis zur nächsten Erinnerung
Dauer = 600 'Sekunden bis zum Versenden der Mail
Titel = "Bitte Pulver nehmen!" 'Fenstertitel
Sound = "sndrec32 /play /close C:\WINDOWS\Media\tada.wav" 'Pfad Sounddatei
Set fso = CreateObject("Scripting.FileSystemObject")
Set Shell = CreateObject("Wscript.Shell")
LogFile = Replace(WScript.ScriptFullName, ".vbs", ".log")
Done = False
Do
Shell.Run Sound, 0, True 'Soundausgabe
Text = "Zeit: " & Int(Dauer / 60) & " Minuten, sonst wird ein Erinnerungsmail verschickt."
Antwort = Shell.PopUp(Text,Intervall,Titel,4) 'Popup
Select Case Antwort 'PopUp-Ergebnis auswerten
Case vbYes 'Ja
fso.OpenTextFile(LogFile, 8, True).WriteLine _
Now & vbTab & "Pulver genommen"
Done = True
Case vbNo 'Nein
fso.OpenTextFile(LogFile, 8, True).WriteLine _
Now & vbTab & "Pulver NICHT genommen"
Done = True
Case Else 'Zeitablauf
Dauer = Dauer - Intervall
If Dauer <= 0 Then 'Zeit abgelaufen, Mailversand
Shell.Run "C:\Utils\gbmail -to mailadresse@domain.com -h smtp.domain.com -from pulver@domain.at -s ""Pulver nicht genommen"""
fso.OpenTextFile(LogFile, 8, True).WriteLine _
Now & vbTab & "Email zur WARNUNG verschickt"
Done = True
End If
End Select
Loop Until Done
Das Script wirst Du vermutlich per "Geplantem Task" starten; es läuft bis zur ersten Entscheidung "Ja" oder "Nein" bzw bis die in Zeile 2 angegebene Zeit in Sekunden erreicht ist.
Eine Literaturempfehlung habe ich leider nicht anzubieten, aber vielleicht findest Du unter den eingetragenen etwas Passendes (etwa gleich den zweiten)...
Grüße
bastla