Timeout Funktion in Batch Dateien?
Hallo Ihr Lieben,
Ich bin anfänger und versuche mir grundlagen kentnisse in diesem Bereich anzueignen!
Meine Batch datei wird nach dem einfügen der timeout befehl einfach geschlossen!
@echo off
Echo Sample text
Timeout 10 oder ob ich timeout/ t *zeitwert schreibe wird die Datei ohne einen Countdown -Anzeige direkt wieder geschlossen!!!
Habe auch schon gegoogelt ohne erfolg. Es wäre erfreulich und sehr lieb wenn mir einer bei diesem simplen problem weiterhelfen könnte!
2 Antworten
...dann hast Du irgendwas im Code , was die Batch abstürzen lässt bevor sie zum timeout-Befehl kommt.
founktioniert:
@echo off
Echo Sample text
timeout 10
ergo warst Du bei der Angabe: Sample Text nicht ehrlich! ich würde mein linkes Bein verwetten, das im Text ein Pipe-Symbol "|" enthalten ist!
das geht nicht und stürzt wegen der Pipes ab:
@echo off
echo .-''-. .-------. ____..--'
echo .'_ _ \ | _ _ \ | |
echo / ( ` ) '| ( ' ) | | .-' '
echo . (_ o _) ||(_ o _) / |.-'.' /
echo | (_,_)___|| (_,_).' __ / _/
echo ' \ .---.| |\ \ | | .'._( )_
echo \ `-' /| | \ `' /.' (_'o._)
echo \ / | | \ / | (_,_)|
echo `'-..-' ''-' `'-' |_________| esel
timeout 10
Die Symbole $<>| sind mit Sonderfunktionen belegt und müssen in Texten maskiert werden:
echo so gibt man Sonderzeichen als Text aus: ^&^<^>^|
altenativ kann man diese auch innerhalb von "Gänsefüßchen verwenden (diese werden von echo allerdings auch ausgegeben)
echo so gibt man Sonderzeichen als Text aus: "&<>|"
Wenn du einen Schowtext ohne die umgebenden "Gänsefüßchen" ausgeben willst geht das mit einem for-Loop. (der Inhalt von Laufvariablen ist Sonderzeichenfest)
@echo off
for %%a in (
" ,- _~, ,,"
" (' /| / ||"
"(( ||/= ,._-_ /\\ _-_ _-_, _-_ ||"
"(( || || / || \\ ||_. || \\ ||"
" ( / | || /\\ ||/ ~ || ||/ ||"
" -____- \\, || \\,/ ,-_- \\,/ \\"
" /"
" (,"
) do echo %%~a
timeout 10
(die Tilde~ in der Laufvariable entfernt automatisch umgebende "Quotes")
Sterne * und Fragezeichen? sind allerdings bei dieser Variante im Text nicht erlaubt. 😫Batch ist einen der grausamsten Sprache die es gibt.
Wenn ich Dir eine guten rat geben darf, vergiss Batch und lerne Powershell.
demo .ps1
" ,- _~, ,,
(' /| / ||
(( ||/= ,._-_ /\\ _-_ _-_, _-_ ||
(( || || / || \\ ||_. || \\ ||
( / | || /\\ ||/ ~ || ||/ ||
-____- \\, || \\,/ ,-_- \\,/ \\
/
(,"
sleep 10
Das funktioniert für mich:
@echo off
echo "Hallo Welt"
timeout /T 10 /nobreak