Batch Timeout in msgbox anzeigen?
Guten Abend,
vielleicht ist dies wieder einmal eine Frage, die viele andere interessiert ...
Ich möchte gerne einen timeout im batch abbilden und das Ganze in einer msgbox anzeigen lassen.
Dazu habe ich eine Angabe in einer msgbox und anschließend eine ping-Wartepause. Allerdings bringe ich es nicht zustande, die Wartezeit als Countdown in der msgbox abzubilden:
Kann hier jemand helfen?
OKIDOKI
vielleicht ist dies wieder einmal eine Frage, die viele andere interessiert ...
Ich möchte gerne einen timeout im batch abbilden und das Ganze in einer msgbox anzeigen lassen.
Dazu habe ich eine Angabe in einer msgbox und anschließend eine ping-Wartepause. Allerdings bringe ich es nicht zustande, die Wartezeit als Countdown in der msgbox abzubilden:
ECHO msgbox"Ihre Wartezeit beträgt 20 Sekunden.",64,"Timer" > %temp%\msg.vbs
%temp%\msg.vbs
del %temp%\msg.vbs
ping /n 20 localhost >nul
GOTO EOF
Kann hier jemand helfen?
OKIDOKI
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 180907
Url: https://administrator.de/forum/batch-timeout-in-msgbox-anzeigen-180907.html
Ausgedruckt am: 22.12.2024 um 18:12 Uhr
21 Kommentare
Neuester Kommentar
Hallo OKIDOKI!
Kannst Du vielleicht etwas weiter ausholen und erklären, was Du eigentlich erreichen willst? Ev könntest Du (wie in diesem Beitrag gezeigt) in einer Schleife mit jeweils einer Sekunde Dauer ein Popup anzeigen lassen (wobei dieses allerdings durch Klick auf eine Schaltfläche oder Schließen des Fensters vorzeitig beendet werden kann) - schön ist das dann aber sicher nicht ...
Grüße
bastla
Kannst Du vielleicht etwas weiter ausholen und erklären, was Du eigentlich erreichen willst? Ev könntest Du (wie in diesem Beitrag gezeigt) in einer Schleife mit jeweils einer Sekunde Dauer ein Popup anzeigen lassen (wobei dieses allerdings durch Klick auf eine Schaltfläche oder Schließen des Fensters vorzeitig beendet werden kann) - schön ist das dann aber sicher nicht ...
Grüße
bastla
Hallo OKIDOKI!
Mit "Popup" wärst Du dann bei meinem Vorschlag von oben angekommen ...
Auf Deine beschriebene Situation angepasst sähe das etwa so aus:
Grüße
bastla
Mit "Popup" wärst Du dann bei meinem Vorschlag von oben angekommen ...
Auf Deine beschriebene Situation angepasst sähe das etwa so aus:
set /a Sek=20
set PopUp=%temp%\msg.vbs
>%PopUp% ECHO WScript.CreateObject("WScript.Shell").PopUp "Ihre Wartezeit beträgt %Sek% Sekunden.",%Sek%,"Timer",64
start %PopUp%
set /a Sek+=1
ping /n %Sek% localhost >nul
del %PopUp%
bastla
Aloha,
warum wird nicht einfach die
da zählt natürlich von 20 runter [Auszug aus der angepassten timeout.exe, die auch für Windows XP / x86 funktioniert]
Also nur für den Fall, dass man eine Anzeige benötigt und daher auf VBS MsgBox rumkaut, weil man glaubt, im Batch gibt es keine.
greetz André
warum wird nicht einfach die
timeout.exe
genutzt (bei Windows 7 standard - sonst gibt es auch eine gleichfunktionierende im Internet (einzeln als zip), vom Resource Kit für NT4, nutze ich für unsere fehlerhafte OpenVPN-Verbindungen)>timeout /?
TIMEOUT - This utility is similar to the DOS PAUSE command. However, it
accepts a timeout parameter to specify a length of wait (in seconds)
at which time it will continue without a key press.
Written by Eric Brown, Business System Division.
Copyright (C) Microsoft Corporation, 1992-1995.
Usage - TIMEOUT <###>
where <###> is a decimal number of seconds between -1 and 100000.
The value -1 means to wait indefinitely for a key hit.
23.02.2012 7:05:52,90 C:\Dokumente und Einstellungen\User
>timeout 20
Waiting 16 seconds, press a key to continue...
Also nur für den Fall, dass man eine Anzeige benötigt und daher auf VBS MsgBox rumkaut, weil man glaubt, im Batch gibt es keine.
greetz André
@skye
Wenn ich das richtig verstanden habe, geht es aber darum, die Verzögerung (realisiert durch "
Grüße
bastla
Wenn ich das richtig verstanden habe, geht es aber darum, die Verzögerung (realisiert durch "
ping
") in voller Länge sicherzustellen - die Anzeige soll nur informativen Charakter haben (deswegen auch per "start
" parallel ausgeführt) - im gleichen Fenster wird das aber auch mit "/b
" nix werden ...Grüße
bastla
Aloha bastla,
verstehe ... also das übliche bei OKIDOKI, man darf wieder mitinterpretieren, weil er es nicht ordentlich ausdrückt. ...
dasselbe in grün, wobei 1 Sekunde Differenz sein wird (witzigerweise ist der Ping bei mir eher fertig, timeout also auf 19 oder ping auf 21 setzen).
greetz André
verstehe ... also das übliche bei OKIDOKI, man darf wieder mitinterpretieren, weil er es nicht ordentlich ausdrückt. ...
start cmd /c timeout 20 & ping /n 20 localhost >nul
dasselbe in grün, wobei 1 Sekunde Differenz sein wird (witzigerweise ist der Ping bei mir eher fertig, timeout also auf 19 oder ping auf 21 setzen).
greetz André
moin OKIDOKI,
Wenn Du eh mit (temporären) VBS arbeitest, kannst Du doch auch wait mit vbs nutzen. ist vllt etwas genauer als der ping.
sonst würde ich auch nur ein kleineres cmd popup verwenden
in Windows 7 aber mit waitfor anstatt timeout. Waitfor zieht die Zeit bis zum Ende durch.
Gruß Phil
Wenn Du eh mit (temporären) VBS arbeitest, kannst Du doch auch wait mit vbs nutzen. ist vllt etwas genauer als der ping.
sonst würde ich auch nur ein kleineres cmd popup verwenden
in Windows 7 aber mit waitfor anstatt timeout. Waitfor zieht die Zeit bis zum Ende durch.
start "Timer" cmd /c "color f0&mode con cols=35 lines=4& for /l %%i in (20 -1 1) do cls&title Wartezeit ist noch %%i sek.&echo Sie warten noch %%i sekunde^(n^).&waitfor x /t 1"
Gruß Phil
Hallo OKIDOKI!
... und etwas in der Art
wirst Du sicherlich auch niemandem antun wollen ...
Grüße
bastla
Ich suche nach einer Möglichkeit, die verbleibende Zeit im Popup abzubilden
Du wirst sie leider nicht finden ...... und etwas in der Art
set /a Sek=20
set PopUp=%temp%\msg.vbs
>%PopUp% ECHO T=(Timer+1) Mod 86400:WScript.CreateObject("WScript.Shell").PopUp "Ihre Wartezeit beträgt " ^& WScript.Arguments(0) ^& " Sekunden.",1,"Timer",0:Do While Timer^<T:Loop
for /l %%i in (%Sek% -1 1) do %PopUp% %%i
Grüße
bastla
Hallo OKIDOKI,
wie bereits in deinem letzten Thread angemerkt, ist Batch nun mal Console und nicht Klicki-Bunti.
Hier noch mal ein Beispiel, an dem du unschwer erkennen kannst, dass du den ganzen Kram auch gleich in einer anderen Sprache umsetzen könntest ...
... denk mal drüber nach ...
Grüße
rubberman
wie bereits in deinem letzten Thread angemerkt, ist Batch nun mal Console und nicht Klicki-Bunti.
Hier noch mal ein Beispiel, an dem du unschwer erkennen kannst, dass du den ganzen Kram auch gleich in einer anderen Sprache umsetzen könntest ...
@echo off &setlocal
:: Variable Sek wird in der HTA wieder expandiert
set /a Sek = 5
set "msg=%temp%\tmp.hta"
:: alle Zeilen, die mit min. 6 Leerzeichen anfangen in die HTA umleiten
>"%msg%" (type "%~f0"|findstr /bc:" ")
mshta "%msg%"
del "%msg%"
echo Jetzt gehts weiter.
pause
goto :eof
:: und schon Schluss mit Batch
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Countdown</title>
<hta:application
id="oHTA"
applicationname="myApp"
border="thin"
borderstyle="normal"
caption="yes"
contextmenu="yes"
icon=""
innerborder="no"
maximizebutton="no"
minimizebutton="no"
navigable="yes"
scroll="no"
scrollflat="no"
selection="no"
showintaskbar="no"
singleinstance="yes"
sysmenu="yes"
version="1.0"
windowstate="normal"
/>
<style type="text/css">
body {background-color:#EEF0FF; color:#FF0000; font-family:Helvetica; font-size:12pt; margin:10px 20px 10px 20px;}
</style>
<script type="text/jscript">
/* <![CDATA[ */
window.resizeTo(300, 100);
window.moveTo(screen.width/2-150, screen.height/2-50);
var oWSH=new ActiveXObject("WScript.Shell");
var i=parseInt(oWSH.ExpandEnvironmentStrings("%Sek%"));
function countdown() {
if (0 < i) {
document.getElementById('display').innerHTML='Ihre Wartezeit beträgt '+i.toString()+' Sekunden.'
i--;
setTimeout('countdown()', 1000);
} else {
window.close();
}
}
/* ]]> */
</script>
</head>
<body onload="countdown()">
<div id="display" name="display" />
</body>
</html>
Grüße
rubberman
Zitat von @pieh-ejdsch:
in Windows 7 aber mit waitfor anstatt timeout. Waitfor zieht die Zeit bis zum Ende durch.
Aloha Phil,in Windows 7 aber mit waitfor anstatt timeout. Waitfor zieht die Zeit bis zum Ende durch.
danke für den Hinweis
waitfor
gibt es ja ebenso im o.g. Resource Kit für Windows 2000>waitfor /?
waitfor:
waitfor [-t <timeout>] [-s] <signal name>
Wait until the 'signal' is given across the net.
Parameters:
-t timeout Number of seconds to wait. Default is forever.
-s Send signal instead of waiting.
Only one 'waitfor' can wait on a given signal on a given machine.
greetz André
Hallo OKIDOKI.
Du solltest die Sprache nach folgenden Gesichtspunkten auswählen:
- Was will ich zukünftig damit Programmieren? Welche Sprache ist dafür geeignet?
- Welche Syntax fällt mir am leichtesten zu verstehen?
- Ist die Sprache populär (ein Indiz dafür dass sie auch gut sein könnte ) und wird sie noch weiterentwickelt.
Schau dir mal Java, C# und C++ an. Falls dir die Syntax widerstrebt und du nur für Windows entwickeln willst ggf. auch VB. Als Einsteigersprache evtl. Python.
Es ist schwierig dir einen Rat zugeben. Wenn du 10 Leute fragst, wirst du wahrscheinlich 11 unterschiedliche Antworten bekommen . Ich habe mich vor etwas über einem Jahr dazu entschieden mir C++ autodidaktisch anzueignen. Leider habe ich nur wenig Zeit dazu und somit ist mein Code meistens ein hässlicher Mix aus C, C++ und C++/Cli ...
Grüße
rubberman
Zitat von @OKIDOKI:
Hast du vielleicht einen Tipp, wie ich einsteigen sollte? Was hälst du von purebasic?
Hast du vielleicht einen Tipp, wie ich einsteigen sollte? Was hälst du von purebasic?
Du solltest die Sprache nach folgenden Gesichtspunkten auswählen:
- Was will ich zukünftig damit Programmieren? Welche Sprache ist dafür geeignet?
- Welche Syntax fällt mir am leichtesten zu verstehen?
- Ist die Sprache populär (ein Indiz dafür dass sie auch gut sein könnte ) und wird sie noch weiterentwickelt.
Schau dir mal Java, C# und C++ an. Falls dir die Syntax widerstrebt und du nur für Windows entwickeln willst ggf. auch VB. Als Einsteigersprache evtl. Python.
Es ist schwierig dir einen Rat zugeben. Wenn du 10 Leute fragst, wirst du wahrscheinlich 11 unterschiedliche Antworten bekommen . Ich habe mich vor etwas über einem Jahr dazu entschieden mir C++ autodidaktisch anzueignen. Leider habe ich nur wenig Zeit dazu und somit ist mein Code meistens ein hässlicher Mix aus C, C++ und C++/Cli ...
Grüße
rubberman
Hallo OKIDOKI,
ich habe selbst noch nichts mit Python gemacht, nur ab und zu einige Codes studiert. Für mich überzeugt aber die Plattformunabhängigkeit und die große Anwendungsbreite. Außerdem ist das Einrücken des Codes Teil der Syntax, was meiner Meinung nach nicht unerheblich ist, um einen guten Programmierstil zu schulen. Foren gibt es sicherlich einige, ich würde aber auch nur eine Suchmaschine benutzen - darum kein Vorschlag von mir.
So, nun sind wir aber eindeutig offtopic - egal, wenn's dir hilft
Grüße
rubberman
ich habe selbst noch nichts mit Python gemacht, nur ab und zu einige Codes studiert. Für mich überzeugt aber die Plattformunabhängigkeit und die große Anwendungsbreite. Außerdem ist das Einrücken des Codes Teil der Syntax, was meiner Meinung nach nicht unerheblich ist, um einen guten Programmierstil zu schulen. Foren gibt es sicherlich einige, ich würde aber auch nur eine Suchmaschine benutzen - darum kein Vorschlag von mir.
So, nun sind wir aber eindeutig offtopic - egal, wenn's dir hilft
Grüße
rubberman
Hallo OKIDOKI!
Danke für Deinen Lösungsansatz/Link ...
... aber hinsichtlich rubbermans (mit Bordmitteln umsetzbarer) HTA-Variante kann ich die Aussage
Grüße
bastla
Danke für Deinen Lösungsansatz/Link ...
... aber hinsichtlich rubbermans (mit Bordmitteln umsetzbarer) HTA-Variante kann ich die Aussage
Eine zufriedenstellende Lösung ist nicht in Sicht.
eigentlich nicht akzeptieren (obwohl natürlich "zufriedenstellend" vom Anspruchsniveau abhängt ) ...Grüße
bastla
Hallo bastla.
Genau das war der Grund, warum ich alle mir bekannten Attribute des
Och, ich bin davon überzeugt, dass wbusy genauso wenig wasserdicht ist.
Grüße
rubberman
Genau das war der Grund, warum ich alle mir bekannten Attribute des
hta:application
- Tags mit aufgenommen habe Och, ich bin davon überzeugt, dass wbusy genauso wenig wasserdicht ist.
Grüße
rubberman