
138701
10.04.2019
Prozesse in Zeiten aufteilen
Hallo zusammen,
Mein Ziel ist es, dass in einem Textdokument als Datenbank die bisher verbrachte Zeit eingetragen wird.
Also einmal die Gesamtzeit und für jeden Prozess eine einzelne Zeile.
Ich habe schon folgende Variablen:
-%task% (Der zurzeit im Vordergrund ausgeführte Prozess)
-%total% (Gesamtzeit bis jetzt)
Ich habe schon 3 Methoden, die mir sicher helfen können, komme jedoch mit keiner davon klar.
1.
2.
3.
Mein Ziel ist es, dass in einem Textdokument als Datenbank die bisher verbrachte Zeit eingetragen wird.
total=234
explorer=123
notepad=100
cmd=11
Ich habe schon folgende Variablen:
-%task% (Der zurzeit im Vordergrund ausgeführte Prozess)
-%total% (Gesamtzeit bis jetzt)
Ich habe schon 3 Methoden, die mir sicher helfen können, komme jedoch mit keiner davon klar.
1.
call :timer Total %total%
call :string Total %total%
:string
for /f "tokens=2 delims==" %%a in ('findstr /iblc:"%~1=" "time.dat" 2^>nul') do set /a %~2=%%a
exit /b
:timer
>"%up%\time.dat" (for /f "usebackq tokens=* delims=" %%a in ("%up%\time.dat") do for /f "tokens=1,2 delims==" %%b in ("%%a") do if /i "%%b" == "%SEARCH%" (echo(%%b=%~2) else (echo(%%a))
exit /b
2.
@echo off & setlocal
set "DBFILE=db.txt"
:menu
cls
echo [1] User anzeigen
echo [2] User erstellen
echo [3] User bearbeiten
echo [4] User löschen
choice /C 1234 /N
if %ERRORLEVEL%==4 goto :del
if %ERRORLEVEL%==3 goto :edit
if %ERRORLEVEL%==2 goto :create
if %ERRORLEVEL%==1 goto :show
goto :EOF
:show
cls
echo ==== BENUTZER ANZEIGEN ====
echo.
if not exist "%DBFILE%" goto menu
echo NACHNAME, VORNAME
echo =================
for /f "usebackq tokens=1-2 delims=;" %%a in ("%DBFILE%") DO echo %%b, %%a
echo.
pause
goto menu
:create
cls
echo ==== BENUTZER ERSTELLEN ====
echo.
set /p "VORNAME=Vorname eingeben: "
if "%VORNAME%" == "" (
echo Fehler! Vorname darf nicht leer sein
echo.
timeout /t 2
goto create
)
set /p "NACHNAME=Nachname eingeben: "
if "%NACHNAME%" == "" (
echo Fehler! Nachname darf nicht leer sein
echo.
timeout /t 2
goto create
)
echo.
call :USEREXISTS "%VORNAME%;%NACHNAME%" && (
echo User mit diesen Namen existiert schon! Eingabe bitte wiederholen.
echo.
timeout /t 2
goto CREATEUSER
) || (
>>"%DBFILE%" echo.%VORNAME%;%NACHNAME%
echo Benutzer '%VORNAME% %NACHNAME%' wurde gespeichert.
echo.
timeout /t 2
)
goto menu
:edit
cls
echo ==== BENUTZER BEARBEITEN ====
echo.
set /p "VORNAME=Bestehenden Vornamen des Users eingeben: "
set /p "NACHNAME=Bestehenden Nachnamen des Users eingeben: "
echo.
call :USEREXISTS "%VORNAME%;%NACHNAME%" && (
findstr /ilvc:"%VORNAME%;%NACHNAME%" "%DBFILE%" >"%TEMP%\db.txt" & move "%TEMP%\db.txt" "%DBFILE%" >nul
set /p "VORNAME=Neuen Vornamen eingeben: "
set /p "NACHNAME=Neuen Nachnamen eingeben: "
setlocal ENABLEDELAYEDEXPANSION
>>"%DBFILE%" echo.!VORNAME!;!NACHNAME!
echo.
echo. Benutzer '!VORNAME! !NACHNAME!' wurde erstellt.
endlocal
timeout /t 2
goto menu
) || (
echo Benutzer '%VORNAME% %NACHNAME%' existiert nicht! Eingabe wiederholen.
echo.
timeout /t 2
goto edit
)
goto menu
:del
cls
echo Loeschen
set /p VORNAME=Vorname:
set /p NACHNAME=Nachname:
echo.
call :USEREXISTS "%VORNAME%;%NACHNAME%" && (
findstr /ilvc:"%VORNAME%;%NACHNAME%" "%DBFILE%" >"%TEMP%\db.txt" & move "%TEMP%\db.txt" "%DBFILE%" >nul
goto menu
) else goto del
:USEREXISTS
findstr /ibelc:"%~1" "%DBFILE%" >nul 2>&1 && exit /b 0 || exit /b 1
3.
@echo off
set /a count=0
for /f "tokens=1* delims=:" %%i in ('findstr /n "^" "test.txt"') do set "n%%i=%%j"
:start
set /a count+=1
if defined n%count% goto start
set /a free=%count%
echo -%free%-%n10%-
pause
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 438981
Url: https://administrator.de/forum/prozesse-in-zeiten-aufteilen-438981.html
Ausgedruckt am: 04.05.2025 um 02:05 Uhr
1 Kommentar