Kommentare: sleep oder wait in Batch Dateien: pause cmd
Beitrag erstellt von Bernhard
| Veröffentlicht: 02.04.2010
| Aktualisiert: 19.05.2024 |
Translation English
|🔔
| Kommentare:51
Fragen / Kommentare zu sleep oder wait in Batch Dateien: pause cmd
(neueste zuerst)User: Julian Anmerkung zum Seiten-Layout. Ich würde die Daumen der Bewertungsfunktion vertauschen, da man zuerst die negativen Daumen sieht und denkt, dass es die positiven sind und sich wundert, warum der Artikel so schlecht bewertet ist. Nur eine kleine psychologische Sache, aber ich kann mir vorstellen, dass es vielen Menschen so geht,
danke für den Tipp, habe ich inzwischen geändert
Beitrag erstellt von Bernhard
User: Djimitrej "/t" kann man weglassen. "timeout 100" ist dasselbe wie "timeout /t 100". Getestet unter Windows 10 und Windows Server 2008.
User: WeichNetMehr ich schreib das so; ping localhost -n 10 >nul aber ohne >nul zeigt es das an... ach deswegen @ davor...
Hallo zusammen,
aufgrund von Langeweile habe ich eine kleine Batch geschrieben...ich nenne Sie sleep.cmd und lege Sie im System32 ab. (Darauf achten das Sie im ANSI Format abgespeichert wird. Ansonsten sehen die Umlaute ziemlich hässlich aus!)
Die Batch ersetzt 1:1 alle Funktionen vom timeout Befehl.
Viel Spass damit!
Gruß
Dirk
--------------------------------
@echo off
chcp 1252>nul
if "%1"=="-1" pause>nul && goto END
if "%1"=="" goto SYNTAX
if "%1"=="/?" goto HELP
if /i "%1"=="/s" echo Der [Silent Mode] ist an dieser Position nicht anwendbar. Bitte zuerst ein Zeitlimit angeben!&&echo.&&goto SYNTAX
set "var="&for /f "delims=0123456789" %%i in ("%1") do set var=%%i
if defined var (echo "%1" ist nicht numerisch oder keine mögliche Option!&&echo.&&goto SYNTAX) else (set /a var="%1")
if /i "%2"=="/s" (goto SLEEP) else (goto COUNT)
:SYNTAX
echo FEHLER: Ungültige Syntax.
echo Geben Sie "SLEEP /?" ein, um die Syntax anzuzeigen.
goto END
:HELP
echo SLEEP Zeitlimit [/S]
echo.
echo. Beschreibung:
echo. Dieses Hilfsprogramm verwendet einen Zeitlimitparameter, so dass
echo. der angegebene Zeitraum (in Sekunden) verstreicht.
echo.
echo. Parameterliste:
echo. Zeitlimit (Sekunden) Bestimmt die Wartezeit in Sekunden.
echo.
echo. /S [Silent Mode]: SLEEP ohne Output
echo.
echo. /? Zeigt diese Hilfe an.
echo.
echo. HINWEIS: Ein Zeitlimit von -1 bedeutet, dass unendlich lang auf einen
echo. Hauptprozess gewartet wird. Abbruch mit beliebiger Taste!
echo.
echo. Beispiele:
echo. SLEEP /?
echo. SLEEP 10
echo. SLEEP 10 /S
echo. SLEEP -1
goto END
:COUNT
rem Erzeuge Zeile aus backspace Characters... %BS% ist ein Rückschritt
for /f "delims=;" %%a in ('"prompt $H; & for %%. in (nul) do call "') do (set "BS=%%a")
rem das ganze 80mal (die Länge spielt keine rolle, es geht nie weiter zurück als der Zeilenanfang)
for /l %%n in (1,1,80) do (call set "bk_ln=%%bk_ln%%%BS%")
for /l %%a in (%var%,-1,0) do (
rem schreibe 80 Backspaces (%bk_ln%) und anschließend den gewünschten String
<nul set /p "=%bk_ln%Sleep Timer endet in %%a Sekunden..."||ver>nul
ping localhost -n 2 >nul
if "%%a"=="0" goto END
)
:SLEEP
rem set /a var=%var%+1 (bei Bedarf Zeitkorrektur +1 Sekunde)
ping localhost -n %var% >nul
:END
echo.
User: Leli Kann man das auch irgendwie machen ohne das dass angezeigt wird?
>NUL lässt es unangezeigt
Beitrag erstellt von anonym
User: M123 Wenn diese "Gewartet wird..." Nachricht nicht angezeigt werden soll, einfach ">NUL" dranhängen (strg+c funktioniert trotzdem noch)
User: Franzy @Marcolinchen Du musst "timeout" vor dem "goto main" schreiben, da du sonst nur eine endlose Textschleife bekommst :) (Mein erster post kam irgendwie nicht an, oder?)
User: Marcolinchen9867 Okay nur das klappt bei mir nicht richtig, ich schicke mal mein Programm rein: @echo off title Tic Tac Toe - Tipps and Tricks color C3 : main echo 1. Wiederholte Nameneingabe echo. echo Sicher kennst du es, dass es soooooo nevig ust, bei jeder Runde den Namen erneut einzugeben. echo Dagegen gibt es eine Lösung: Nach der ersten Runde wird der Name gespeichert. Das heisst, wenn du echo bei der zweiten Runde angelangst, musst du nur noch auf Enter zu dücken, und schwupps, echo lädt das Spiel deinen Namen, ganz ohne dass du ihn eingeben musstest. echo echo. echo. goto main timeout /T 10 /nobreak start Menu.exe exit
User: El Turco vielen Dank für die wertvolle Info. Hast mich vom Last gerettet.
User: Bitte ein Bit Versteh ich auch nicht. Nach der Hilfe will er nur nur 10 Echoanforderungen senden, was vielleicht funktioniert aber nicht zuverlässig. Tip, wechsele auf eine vernünftige Skriptsprache. Und seie es nur Visual Basic Script. Man schiesst sich sonst regelmäßig ins Knie wenn man Dinge wie for/while/Sleep machen will. Ich nutze gerne Python als Ersatz für erweiterte Batch.