Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Countdown in Batch-Datei

Frage Entwicklung Batch & Shell

Mitglied: Schully

Schully (Level 1) - Jetzt verbinden

12.02.2009, aktualisiert 18.10.2012, 12248 Aufrufe, 12 Kommentare

Hallo Forum,

ich möchte gern eine Wartezeit von 180 Sekunden in einer Batch-Datei anzeigen.

Jetzt habe ich das so gelöst:

set /a i=0
:start
if /I %i% GEQ 180 goto :next
C:\wait.exe 1
set /a i=%i%+1
echo %i%
goto :start

Im cmd sieht das dann so aus:
1
2
3
4
5
6
7
...
180
Ich möchte aber das nur die aktuelle Zahl zu sehen ist und nicht diese Liste von 1 - 180.
Kann mir einer sagen wie ich das hinbekomme.
Vielen Dank schon mal für Eure Hilfe.

Mit freundlichen Grüßen
J. Schulz
Mitglied: bastla
12.02.2009 um 10:53 Uhr
Hallo Schully!

Ich möchte aber das nur die aktuelle Zahl zu sehen ist und nicht diese Liste von 1 - 180.
Mit
cls & echo %i%
hast Du es schon versucht?

Grüße
bastla
Bitte warten ..
Mitglied: Schully
12.02.2009 um 11:08 Uhr
Hallo bastla,

so das funktioniert aber super schnell.
Das sind höchstens 18 Sekunden!!
Bitte warten ..
Mitglied: bastla
12.02.2009 um 11:13 Uhr
Hallo Schully!

Das sind höchstens 18 Sekunden!!
Die Zeile
C:\wait.exe 1
hätte ich eigentlich als "Mache 1 Sekunde Pause!" interpretiert ...

Nur zur Sicherheit: Meine Zeile oben sollte als Ersatz für Deine "echo"-Zeile verwendet werden.

Grüße
bastla
Bitte warten ..
Mitglied: Schully
12.02.2009 um 11:20 Uhr
Das war auch so.
Jetzt mache ich es so:

@echo off
cls
echo ---------------------
echo - Power off Script -
echo ---------------------


set /a i=0
:start
if /I %i% GEQ 180 goto :next
C:\wait.exe 1000
set /a i=%i%+1
cls & echo %i%
goto :start

:next
pause

Das funktioniert dank Deiner Hilfe absolut sauber.
Jetzt löscht es aber die ganzen Zeilen oberhalb der Zahlen;-((
Z.B. diese hier.
echo ---------------------
echo - Power off Script -
echo ---------------------

Könnte man das noch ändern sodas die Zeilen stehen bleiben?

Gruß
Jürgen
Bitte warten ..
Mitglied: bastla
12.02.2009 um 11:27 Uhr
Hallo Schully!

Etwa so:
01.
@echo off & setlocal 
02.
set Kopf=%temp%\Kopf.txt 
03.
>%Kopf%  echo --------------------- 
04.
>>%Kopf% echo - Power off Script - 
05.
>>%Kopf% echo --------------------- 
06.
>>%Kopf% echo\ 
07.
 
08.
set /a i=0 
09.
:start 
10.
if %i% GEQ 180 goto :next 
11.
cls 
12.
type %Kopf% 
13.
echo %i% 
14.
C:\wait.exe 1000 
15.
set /a i+=1 
16.
goto :start 
17.
 
18.
:next 
19.
pause
Grüße
bastla

P.S.: Bitte verwende zum Posten von Batch-Code eine passende Formatierung ...
Bitte warten ..
Mitglied: Schully
12.02.2009 um 12:50 Uhr
Hallo bastla,

ja so könnte es gehen.
Aller dings ist es so das diese Wartezeit innerhalb einer größeren Batch-Datei eingebaut ist.
Ich habe dort mehrere verschiedene Stufen die mir ein Echo ausgeben damit ich weiß was gerade getan wurde.
Z.B.
Rechner aufwecken mit Bestätigung
Copy Job erfolgreich oder nicht usw.
Diese ganzen Meldungen gehen mir jetzt verloren oder kann ich diese alle mit
>>%Kopf% echo eine Meldung
in die Textdatei schreiben?

Und dann wäre noch die Zählreienfolge von 180 nach 0. Das bekomme ich auch nicht hin.

Gruß
Jürgen
Bitte warten ..
Mitglied: bastla
12.02.2009 um 12:57 Uhr
Hallo Schully!

Diese ganzen Meldungen gehen mir jetzt verloren oder kann ich diese alle mit
>>%Kopf% echo eine Meldung
in die Textdatei schreiben?
Kannst Du machen ...

Und dann wäre noch die Zählreienfolge von 180 nach 0. Das bekomme ich auch nicht hin.
Entweder das Gegenstück zu Deiner bisherigen Vorgangsweise, also:
01.
set /a i=180 
02.
:start 
03.
if %i% LEQ 0 goto :next 
04.
cls 
05.
type %Kopf% 
06.
echo %i% 
07.
C:\wait.exe 1000 
08.
set /a i-=1 
09.
goto :start 
10.
 
11.
:next 
12.
pause
oder eine Zählschleife:
01.
for /L %%z in (180,-1,0) do ( 
02.
    cls 
03.
    type %Kopf% 
04.
    echo %%z 
05.
    C:\wait.exe 1000 
06.
07.
pause
Grüße
bastla
Bitte warten ..
Mitglied: Schully
12.02.2009 um 13:28 Uhr
Hallo bastla,

das läuft super ab.

Die FOR-Schleife ist genau was ich brauche.
Das Ding ist gelöst.

Vielen Dank
Gruß
Jürgen
Bitte warten ..
Mitglied: GhostScripter
12.02.2009 um 15:14 Uhr
Moin zusammen,

das Script hat das Problem ja gelöst, aber nur mal so nebenbei:

Kann man sowas eigentlich mit ESC Sequenzen lösen? Einen Beep bekommt man ja auch hin.

Also entweder ein ECHO ohne Zeilenvorschub und dann ein paar mal ^H oder Zeile hoch und überschreiben.

beste Grüße
Jan
Bitte warten ..
Mitglied: bastla
12.02.2009, aktualisiert 18.10.2012
@GhostScripter
Derartige Überlegungen sind etwa hier oder auch da schon mal Thema gewesen ...

Grüße
bastla
Bitte warten ..
Mitglied: Schully
12.02.2009 um 15:24 Uhr
Hallo Jan,

wie meinst Du das? Kannst Du das mal Coden?

Grüße
Jürgen
Bitte warten ..
Mitglied: GhostScripter
13.02.2009 um 11:29 Uhr
So richtig leider eben nicht. Drauf gekommen bin ich im Zusammenhang mit drei Dingen:

1., Man kann den Prompt auch ändern. Ein $H macht bei dem ein Backspace. Ich nutze das ab und zu, um mir im Prompt die Zeit anzeigen zu lassen, wobei mich die Hundertstel nicht wirklich interessieren. Zum Beispiel um bei Tests die Laufzeit zu protokollieren.

mal so einen Prompt als Beispiel:
01.
prompt $c$d$s$t$h$h$h$f$_$p$g
2. Die Ausgabe von Sonderzeichen funktioniert auch mit mind. einem Steuerzeichen (Beep - 0x07)
01.
copy con beep.bat [Enter] 
02.
@echo [Ctrl+G] [Enter] 
03.
[Ctrl+Z] [Enter]
01.
for /F %i in ('beep.bat') do set beep=%i 
02.
echo %beep%
3. ein ECHO ohne Zeilenvorschub gibt es z.B. hier: Echo ohne Zeilenumbruch und ähnliche Spielereien

Naja, das alles zusammen weckte da eben Hoffnungen

beste Grüße
Jan
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
Ä in batch Datei (12)

Frage von BergEnte zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...