Timeout Funktion in Batch Dateien?

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
Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren

Das funktioniert für mich:

@echo off
echo "Hallo Welt"
timeout /T 10 /nobreak