2017-11-28 5 views
0

Ich versuche, eine Batch-Datei zu erstellen, und ein Teil davon ruft nach einem Timeout-Befehl für 15 Sekunden, um aufgerufen zu werden. Dies ist der Teil des Codes ...Ausführung des Timeout-Befehls in der Batch-Datei, ohne dass die Timout-Meldung angezeigt wird

@echo off 
timeout 15 
echo The script is waiting to run... 
pause 

und Folgendes wird angezeigt ...

Waiting for 15 seconds, press any key to continue... 
The script is waiting to run... 
pause 

Aber was ich versuche, die Meldung unter dem Timeout-zeiliges Display an seinem Platz zu tun ist, machen der Timeout-Nachricht. Kann man das irgendwie machen?

+0

'timeout 15> nul' – AlexP

+1

@AlwxP, Teilantwort, aber wird nicht funktionieren, das Echo muss vor dem Timeout-Aufruf passieren. – jwdonahue

Antwort

2

Ich glaube, dass dies für Sie arbeiten:

@echo off 
echo The script is waiting to run... 
timeout 15 > nul 
pause 
1

Ändern Sie die Reihenfolge der Operationen. Drucken Sie zuerst Ihre Nachricht und dann das Zeitlimit. Es wird als schlechte Form angesehen, die Nachricht vor einem Timeout zu verbergen, aber die Weiterleitung zu NUL kann bei Bedarf funktionieren. Fünfzehn Sekunden drücken es nicht zu viel, aber zwanzig oder mehr, müssen Sie den Benutzer wissen lassen, dass sie einen sicheren Fluchtweg haben, und Sie müssen mit der Tatsache umgehen, dass sie dies tun können, ob Sie seine Ausgabe unterdrücken oder nicht.

Ich würde hinzufügen, dass Ctrl-C oder Ctrl-Brk sind immer nur ein paar Tastenanschläge weg, wenn der Benutzer ungeduldig wird, und immer zu noch schlechteren Benutzererfahrungen führen als eine zusätzliche Zeile in der Ausgabe Ihres Skripts.

Verwandte Themen