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-Key: 339800

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

Printed on: April 25, 2024 at 01:04 o'clock

Member: rubberman
Solution rubberman Jun 04, 2017 at 12:18:30 (UTC)
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
Member: derCreeper
derCreeper Jun 04, 2017 at 21:11:34 (UTC)
Goto Top
kannst du mir auch sagen wie man die zeit in millisekunden angeben kann?
Bitte!
Sinn ist übrigens unverständlich.
Member: rubberman
Solution rubberman Jun 04, 2017 updated at 21:43:31 (UTC)
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
Member: derCreeper
derCreeper Jun 05, 2017 at 07:06:29 (UTC)
Goto Top
vielen Dank.