mercoledì 12 luglio 2023

File VbScript - Calcolare Durata Procedura

 Vi riporto il codice per poter calcolare il tempo trascorso in un file VbScript

-----------------------------------------------------------------------------------------------------------------------


DataInizio = Now

OrarioInizio = Hour(DataInizio) & ":" & Minute(DataInizio) & ":" & Second(DataInizio)

SecondiInizio = (Hour(DataInizio) * 3600) + (Minute(DataInizio) * 60) + Second(DataInizio)

SecondiInizio = 86400 - SecondiInizio


WScript.Sleep 2000


DataFine = Now

GiorniPassati=DateDiff("d",DataInizio,DataFine)

OrarioFine = Hour(DataFine) & ":" & Minute(DataFine) & ":" & Second(DataFine)

SecondiFine = (Hour(DataFine) * 3600) + (Minute(DataFine) * 60) + Second(DataFine)


IF OrarioFine < OrarioInizio Then GiorniPassati = GiorniPassati - 1


DurataProcedura = SecondiInizio + SecondiFine

If DurataProcedura >= 86400 then DurataProcedura = DurataProcedura - 86400


Ore = DurataProcedura \ 3600

Minuti = (DurataProcedura - (Ore * 3600)) \ 60

Secondi = DurataProcedura -((Ore * 3600)+(Minuti*60))


If GiorniPassati <> 0 then

    wscript.echo "Durata Procedura : " & GiorniPassati & " giorni, " & Ore & ":" & Minuti & ":" & Secondi

Else

    wscript.echo "Durata Procedura : " & Ore & ":" & Minuti & ":" & Secondi

End If

Etichette: , , , , , ,

lunedì 10 luglio 2023

File VbScript - Controllare se Processo Avviato e Attendere Chiusura

Vi riporto il codice di un VbScript che monitora se il processo NOTEPAD.EXE è avviato, nel caso lo sia attende fino a quando non viene chiuso.

-----------------------------------------------------------------
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
On Error Resume Next
Do
   Set colProcessList = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'notepad.exe'").ItemIndex(0)
   If Err.Number <> 0 Then Exit Do
Loop
wscript.echo "Notepad Chiuso"
-----------------------------------------------------------------

Etichette: , , , , ,

File Batch - Calcolare Durata Procedura

 Vi riporto il codice per poter calcolare il tempo trascorso in un file Batch

Metodo 1 :

--------------------------------------------------------------------

@echo off

cls

setlocal EnableDelayedExpansion

set STARTTIME=%TIME: =%
set /A OreInizio=%STARTTIME% / 360000
if %OreInizio% LSS 10 set STARTTIME=0%STARTTIME%

pause


set ENDTIME=%TIME: =%
set /A OreFine=%ENDTIME% / 360000
if %OreFine% LSS 10 set ENDTIME=0%ENDTIME%
set /A OreInizio=%STARTTIME:~0,2%
set /A MinutiInizio=%STARTTIME:~3,2%
set /A SecondiInizio=%STARTTIME:~6,2%
set /A OreFine=%ENDTIME:~0,2%
set /A MinutiFine=%ENDTIME:~3,2%
set /A SecondiFine=%ENDTIME:~6,2%

Set /A DurataInizioInSecondi=(%OreInizio% * 3600)+(%MinutiInizio%*60)+%SecondiInizio%
Set /A DurataFineInSecondi=(%OreFine% * 3600)+(%MinutiFine%*60)+%SecondiFine%
IF %OreFine% LSS %OreInizio% Set /A DurataFineInSecondi=%DurataFineInSecondi%+86400
Set /A TempoInSecondi=%DurataInizioInSecondi%-%DurataFineInSecondi%
IF %DurataInizioInSecondi% LSS %DurataFineInSecondi% Set /A TempoInSecondi=%DurataFineInSecondi%-%DurataInizioInSecondi%
Set /A Ore = %TempoInSecondi% / 3600
Set /A Minuti = (%TempoInSecondi%-(%Ore%*3600))/60
Set /A Secondi = %TempoInSecondi%-((%Ore% * 3600)+(%Minuti%*60))
IF %Ore% LSS 10 set Ore=0%Ore%
IF %Minuti% LSS 10 set Minuti=0%Minuti%
IF %Secondi% LSS 10 set Secondi=0%Secondi%
echo Durata Procedura  %Ore%:%Minuti%:%Secondi%
--------------------------------------------------------------------

Metodo 2 :

--------------------------------------------------------------------
@echo off

cls
setlocal EnableDelayedExpansion

set STARTTIME=%TIME: =%
set /A OreInizio=%STARTTIME% / 360000
if %OreInizio% LSS 10 set STARTTIME=0%STARTTIME%

pause

set ENDTIME=%TIME: =%
set /A OreFine=%ENDTIME% / 360000
if %OreFine% LSS 10 set ENDTIME=0%ENDTIME%

set /A OreInizio=%STARTTIME:~0,2%
set /A MinutiInizio=%STARTTIME:~3,2%
set /A SecondiInizio=%STARTTIME:~6,2%

set /A OreFine=%ENDTIME:~0,2%
set /A MinutiFine=%ENDTIME:~3,2%
set /A SecondiFine=%ENDTIME:~6,2%


set /A DurataSecondi=(60-%SecondiInizio%)+(%SecondiFine%-60)
set /A TogliMinuti=0
IF %SecondiFine% LSS %SecondiInizio% set /A DurataSecondi=60-%SecondiInizio%+%SecondiFine%
IF %SecondiFine% LSS %SecondiInizio% set /A TogliMinuti=-1

set /A DurataMinuti=(60-%MinutiInizio%)+(%MinutiFine%-60)+%TogliMinuti%
set /A TogliOra=0
IF %MinutiFine% LSS %MinutiInizio% set /A DurataMinuti=(60-%MinutiInizio%)+%MinutiFine%+%TogliMinuti%
IF %MinutiFine% LSS %MinutiInizio% set /A TogliOra=-1
IF %MinutiFine% EQU %MinutiInizio% set /A DurataMinuti=60+%TogliMinuti%
IF %MinutiFine% EQU %MinutiInizio% set /A TogliOra=-1

IF %DurataMinuti% EQU 60 set /A TogliOra=0
IF %DurataMinuti% EQU 60 set /A DurataMinuti=0

set /A DurataOre=%OreFine%-%OreInizio%+%TogliOra%
IF %OreFine% LSS %OreInizio% set /A DurataOre=(24-%OreInizio%)+%OreFine%+%TogliOra%

IF %DurataOre% LSS 10 set DurataOre=0%DurataOre%
IF %DurataMinuti% LSS 10 set DurataMinuti=0%DurataMinuti%
IF %DurataSecondi% LSS 10 set DurataSecondi=0%DurataSecondi%
echo Durata Procedura %DurataOre%:%DurataMinuti%:%DurataSecondi%
--------------------------------------------------------------------

Etichette: , , , , , ,