Zuerst suchte ich nach einem Code, wenn bereits hier oder anderswo, existiert aber kein Ergebnis mit meinen Anforderungen gefunden. Also fing ich an, es Teil für Teil aufzubauen. Ich setze einige Dinge wie bekommen Gesamtnummer, als temporäre Datei erstellen, wenn nicht vorhanden. Wenn die Datei mit dem Datensatz existiert als Datensatz gesetzt, wie viel getan wird , nach dem in einem Zyklus "für" setzen und alles zählen, um Ergebnisse auch mit dem Prozentsatz anzuzeigen.Windows cmd für Schleife Zyklus und Zeit zählen + Prozent
Also das ist eigentlich das Ergebnis dessen, was ich getan habe.
@echo off
setlocal enableExtensions enableDelayedExpansion
set /p NUMBER=<total_number.info
set INFO_FILE=total_done.info
IF NOT EXIST %INFO_FILE% (
(echo 1) > %INFO_FILE%
)
set /p NUMBER_DONE=<%INFO_FILE%
for /l %%x in (%NUMBER_DONE%, 1, %NUMBER%) do (
set /a "Total_Left=%NUMBER%-%%x"
set /a "percent=(%%x*100)/%NUMBER%"
if !Total_Left! GEQ 1 (
set /a "Seconds=!Total_Left!*2"
) else (
set /a "Seconds=00"
)
if !Seconds! GEQ 60 (
set /a "Minutes=!Seconds!/60"
) else (
set /a "Minutes=00"
)
if !Minutes! GEQ 60 (
set /a "Hours=!Minutes!/60"
) else (
set /a "Hours=00"
)
if !Hours! GEQ 24 (
set /a "Days=!Hours!/24"
) else (
set /a "Days=0"
)
set /a "T_L_H=!Hours!-(!Days!*24)"
set /a "T_L_M=!Minutes!-(!Hours!*60)"
set /a "T_L_S=!Seconds!-(!Minutes!*60)"
set "T_L_Ho=0!T_L_H!"
set "T_L_Mi=0!T_L_M!"
set "T_L_Se=0!T_L_S!"
TITLE Test - Percent done : !percent!%%
echo.
echo Time Left : !Days! Days !T_L_Ho:~-2!:!T_L_Mi:~-2!:!T_L_Se:~-2!
echo.
echo Total pages to be done : %NUMBER%
echo Pages done : %%x
echo Rest of the pages : !Total_Left!
echo Percent done : !percent!%%
if %%x GEQ %NUMBER_DONE% (
(echo %%x) > %INFO_FILE%
timeout 1 > NUL
)
cls
)
pause>NUL
Script zuletzt aktualisiert 2018.12.01 23:45