dercreeper
Goto Top

Statusanzeige bei Batch

Ich würde gerne wissen wie man eine Art Schleife macht, die folgendes macht;
sie sagt 1%
wartet X Sekunden und sagt dann
2%
und so weiter, bis 100%.
bitte macht mir ein Skript zum rauskopieren.

Danke schon mal im voraus

der Creeper

Content-ID: 339800

Url: https://administrator.de/contentid/339800

Ausgedruckt am: 26.11.2024 um 02:11 Uhr

rubberman
Lösung rubberman 04.06.2017 um 14:18:30 Uhr
Goto Top
Ich frag besser nicht nach dem Sinn ...
@echo off &setlocal EnableDelayedExpansion
REM Sekunden Wartezeit
set "sec=1"  

REM Backspace- und Wagenrücklauf-Zeichen
for /f "tokens=1,3" %%a in (  
  'prompt $H$S^&for /f %%b in ^('copy /z "%~f0" nul'^) do %%b 2^>nul'  
) do (set "bs=%%a"&set "cr=%%b")  

REM Schleife für die Ausgabe
for /l %%i in (1 1 100) do (
  REM alte Zeile überschreiben
  <nul set /p "=!bs!!cr!%%i%%"  
  REM warten
  >nul timeout /t %sec% /nobreak
)

REM Zeilenumbruch ausgeben
echo(

pause
Grüße
rubberman
derCreeper
derCreeper 04.06.2017 um 23:11:34 Uhr
Goto Top
kannst du mir auch sagen wie man die zeit in millisekunden angeben kann?
Bitte!
Sinn ist übrigens unverständlich.
rubberman
Lösung rubberman 04.06.2017 aktualisiert um 23:43:31 Uhr
Goto Top
Das einzige Tool, das halbwegs ohne Rundung mit Millisekunden umgehen kann, ist pathping.exe. Ist aber ein externer Prozess, der ein paar Extra-Millisekunden zum Laden benötigt. Ersetze die timeout Zeile mit ...
>nul pathping 127.0.0.1 -n -q 1 -p %ms%
... wobei du die Variable ms vorher mit der Anzahl Millisekunden definieren musst.

Grüße
rubberman
derCreeper
derCreeper 05.06.2017 um 09:06:29 Uhr
Goto Top
vielen Dank.