Timeout Message CMD?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Timeout selbst bietet da nichts an, allerdings kannst du die Ausgabe nicht anzeigen lassen (-->ins nul schreiben) und dann selber was ausgeben:

set /a wTime=10

echo Warte %wTime% Sekunden.
timeout /t %wTime% /nobreak >nul

Willst du da aber jetzt immer auch die noch zu wartenden Sekunden anzeigen musst du das anders lösen:

set /a wTime=10

for /L %%i in (%wTime%,-1,0) do (
  cls
  echo Noch %%i Sekunden.
  timeout /t 1 /nobreak >nul
)

Was genau willst du denn anzeigen?

~Tim

Erstmal vielen Dank :D

Kurz gesagt, hab ich eine Auswahl gemacht, wo man verschiedene Sachen machen kann und eine davon wäre eben sinnlos warten.

Probier aktuell nur viel aus um damit besser klar zu kommen.

1
@DeezeNuts

Also reichen dir die Beispiele die ich geschrieben hab?

1

Kurz und knapp: nein.

Ausführlicher: nicht mit TIMEOUT.

Du kannst aber CHOICE missbrauchen, da kannst du einen fast beliebigen Text ausgeben lassen. Nachteil: keine Anführungszeichen; Text endet mit "[", Buchstabe(n), "]"; z. B. "[a]", und der Vorgang lässt sich auch durch Drücken der entsprechenden Taste abbrechen. Auch Alt+Zahlenkombination hilft nicht, weil der Anwender dieselbe Zahlenkombination eingeben kann.

(

RunDLL32 kernel32.dll,Sleep <Zeitdauer in Millisekunden>

funktioniert leider nicht, da die Shell nur Strings (genauer: Pointer auf Strings) übergeben kann, keine direkten Ganzzahlen.)

Für mich war es schneller, mir da eine kleine sleep.exe zusammenzuhacken, als stundenlang im Internet nach so was zu suchen. Der Quellcode besteht im Wesentlichen aus

System.Threading.Thread.Sleep(int.Parse(args[0]));

bzw.

System.Threading.Thread.Sleep(int.Parse(System.Environment.GetCommandLineArgs()[1]);

Mit choice macht das wenig Sinn, Choice wartet ja immer auf ne eingabe... Da müsste man mit Threads arbeiten was für so was schon übertrieben ist.

0
@timlg07

CHOICE hat auch eine Timeout-Option (/T Zeitdauer_in_Sekunden)

0

Was möchtest Du wissen?