Option Explicit  
On Error Resume Next
'On Error GoTo ErrorHandler

Dim strDirectory, nThreshold, counter, extension, msgtext
Dim objConnection, objCommand, sqlQuery, myRecordset, field
Dim objFSO, objFSO1, objFolder, objFile, Logfile, WshNetwork
Dim objShell, strFolder

Dim substituiDado, datafinalDesejada, boolEscreveDado



Dim dtmEndTime, dtmStartTime

Dim endPadrao, endArmaz, extArquivos, encontrouDados, linhaAtual
Dim nomeArquivo, raioxEquipamento, endAmostra, idRAioxObjeto, idRAioxGrupo, nomeAmostra, dataHoraAmostra, dataHoraRaiox, horaRaioxRealizacao, pesoInicial, pesoFinal, grupoRaiox
Dim idAmostraInserida, dataRaiox, horaRaiox, complNomeAmostra

Dim cont

Dim dadosArquivo()
Dim componentesRaiox()
Dim componentesBD()
Dim objetosRaioxBD()

Const SQLServer = "SQLServer"
Const MySQL = "MySQL"
Const MariaDB = "MariaDB"

Dim bancoUsado : bancoUsado = MariaDB
Dim databaseAtual : databaseAtual = "ano_quartil"





'redim dadosArquivo(20, 18)

Const apelidoServidor = "caf"
Const extensaoGeral = "json"
Const strPadraoGRD  = "GRD-JSON"
Const atrasoMin  = 2

Const idRaioxEquipamento = 1
CONST DADOS_POR_LINHA = 6
CONST DADOS_COMPONENTES = 5

Const adOpenStatic = 3
Const adLockOptimistic = 3
Const adUseClient = 3

Dim DB_CONNECT_STRING


Dim strPath
strPath = Wscript.ScriptFullName
 strPath = "D:\GRD"
Set objShell = CreateObject("Wscript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile(strPath)
strFolder = objFSO.GetParentFolderName(objFile)
strFolder = strPath

substituiDado = 1
boolEscreveDado = 1


Function montaConnectString(apelido, var)
    Dim nomeDB
    nomeDB = "grd_data_" & apelido & "_" & var
    Select case bancoUsado
        case SQLServer
            DB_CONNECT_STRING = "Driver={ODBC Driver 13 for SQL Server};Server=LOCALHOST\SQLEXPRESS;Database=" & nomeDB & ";Trusted_Connection=yes;"
            ' DB_CONNECT_STRING = "Provider=SQLOLEDB;Server=LOCALHOST\SQLEXPRESS;Database=grd_" & apelido & "_data_" & var & ";User ID=ADMGRDCAF;Password=re8!zx3ueud;"
            ' DB_CONNECT_STRING = "Data Source=localhost\SQLEXPRESS;Initial Catalog=grd_" & apelido & "_data_" & var & ";Integrated Security=SSPI;"

        case MariaDB
            DB_CONNECT_STRING = "Driver={MariaDB ODBC 3.1 Driver};Server=LOCALHOST;Database=" & nomeDB & ";PORT=3306;USER=root;Trusted_Connection=yes;option=2;"

        case MySQL
            DB_CONNECT_STRING = "Driver={MySQL ODBC 8.0 ANSI Driver};Server=LOCALHOST;Database=" & nomeDB & ";PORT=3306;USER=root;Trusted_Connection=yes;"

    End Select
    AbrirBanco
    FecharBanco
    'wscript.echo DB_CONNECT_STRING
    AbrirBanco

End Function

Function retornaDatabasePelaData(nomeArquivo)
    Dim varTemp
    Dim mesAtual, anoAtual, mesAtualTemp

    anoAtual = Mid(nomeArquivo, 1, 4)
    mesAtualTemp = Mid(nomeArquivo, 6, 2)

    wscript.echo "mes atual " & nomeArquivo

    mesAtual = "4"
    if(CInt(mesAtualTemp) < 10) then
        mesAtual = "3"
    End If
    if(CInt(mesAtualTemp) < 7) then
        mesAtual = "2"
    End If
    if(CInt(mesAtualTemp) < 4) then
        mesAtual = "1"
    End If

    varTemp = anoAtual & "_" & mesAtual

    wscript.echo "var temp " & varTemp
    wscript.echo "var databaseAtual " & databaseAtual

    if (varTemp <> databaseAtual) Then
        databaseAtual = varTemp
        wscript.echo "var temp if " & varTemp
        wscript.echo "var databaseAtual if " & databaseAtual

        montaConnectString apelidoServidor, databaseAtual
    else
        wscript.echo "var temp else " & varTemp
        wscript.echo "var databaseAtual else " & databaseAtual
    end If

End Function

Function criaNovoBancodeDados(nomeNovoBanco)
    On Error Resume Next
    Dim objSQLServer, strDBServerName, objDB, objFG, objDBFile, objLogFile
    const DB_SIZE_IN_MEGABYTES = 5
    strDBServerName = "."

    Set objSQLServer = CreateObject("SQLDMO.SQLServer")
    objSQLServer.LoginSecure = True
    objSQLServer.Connect strDBServerName

    Set objDB = CreateObject("SQLDMO.Database")
    Set objFG = CreateObject("SQLDMO.Filegroup")
    Set objDBFile = CreateObject("SQLDMO.DBFile")
    Set objLogFile = CreateObject("SQLDMO.LogFile")

    objDB.Name = nomeNovoBanco
    objDBFile.Name = nomeNovoBanco & "_Data"
    objDBFile.PhysicalName = "D:\Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL\DATA\" & nomeNovoBanco & "_Data.MDF"
    objDBFile.Size = DB_SIZE_IN_MEGABYTES

    objDB.FileGroups("PRIMARY").DBFiles.Add(objDBFile)

    objSQLServer.Databases.Add(objDB)

    If Err.Number <> 0 Then
        WScript.Echo "Error in criaNovoBancodeDados: " & Err.Description
        Err.Clear
    End If

    'If you no longer want to continue following an error after that block's completed,
    'call this.
    On Error Goto 0

End Function
 
Sub AbrirBanco()
    On Error Resume Next
    
    Set myRecordset = CreateObject("ADODB.Recordset") 

    'Criando a conexão com o SQLSERVER'
    Set objConnection = CreateObject("ADODB.Connection")
        
    'Abrindo a conexão com o SQLSERVER'
    objConnection.Open DB_CONNECT_STRING


    If Err.Number <> 0 Then
        WScript.Echo "Error in AbrirBanco: " & Err.Description
        WScript.Echo "Error Number in AbrirBanco: " & Err.Number
        If (Err.Number = -2147217843) Then
        wscript.echo "Criando novo banco"
        ' criaNovoBancodeDados(databaseAtual)
        End IF
        Err.Clear
    else 
        wscript.echo "banco aberto"
    End If

    'If you no longer want to continue following an error after that block's completed,
    'call this.
    On Error Goto 0

    

End Sub

Sub FecharBanco()
    'Fecha a conexão aberta com o SQLSERVER'
     objConnection.Close
     wscript.echo "banco fechado"
    '  myRecordset.Close
     Set myRecordset = Nothing 
     
End Sub


Sub procuraArquivos(extension, strDirectory)
	
	'Dim testeEndArmaz : testeEndArmaz = verificaEndArmazExiste (strDirectory)

	'If(testeEndArmaz) Then
        
		wscript.echo "Iniciou Contagem  na " & strDirectory 
		counter = 0  

		' Set objFSO = CreateObject("Scripting.FileSystemObject")	
		Set objFolder = objFSO.GetFolder(strDirectory)

		For Each objFile In objFolder.Files  
			if LCase((objFSO.GetExtensionName(objFile))) = LCase(extension) then  
				'setando valores para a tabela 
				'nomeArquivo = objFSO.GetBaseName(objFile) 'pega o nome sem a extensão do arquivo
				nomeArquivo = objFSO.GetFileName(objFile) 'pega o nome junto com a extensão

			   
				'lendo os arquivos
				linhaAtual = 1
				wscript.echo nomeArquivo
                readDadosArquivos objFile
                'getData objFile
				'wscript.echo " "
				counter = counter + 1
			end if  
		Next 
		wscript.echo " "
		wscript.echo "Foram encontrados: " &counter & " arquivos"
		
		
		Set objFSO = Nothing
		Set objFolder = Nothing
		
	
	'End If

    

    'MsgBox ("The number of " & extension & " files in " & strDirectory & " is: " & counter) 
End Sub

Function readDadosArquivos (arquivo)

    On Error Resume Next
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Dim fso2, f, dado, i,j,k, inicioLinha, contagem, finalLinha, linhaAtual, nomeArquivoAtual, strarquivotemp, arquivotemp

    WScript.Echo "arquivo que esta sendo lido: " & arquivo
    Set f = objFSO.OpenTextFile(arquivo, ForReading, -2)
    nomeArquivoAtual = objFSO.GetBaseName(arquivo)


    Dim strMinuto, strHora, strDia, strDataHora

    dado = ""
    dado = f.ReadLine

    Do Until f.AtEndOfStream        
        dado = dado & f.ReadLine 'lê o dado da linha e armazenada em dado para o tratamento
    Loop

    f.Close

    ' wscript.echo dado

    Dim aString, aSubString, findpos, findpos1, retornoAtual
    Dim posMinuto, posHora, posDia, posFinal

    retornoAtual = True

    posMinuto = 0
    posHora = 0
    posDia = 0
    posFinal = 0
    
    Dim tamanhoTotal

    strMinuto = ""  
    strHora = ""  
    strDia = ""  
    strDataHora = ""  

    tamanhoTotal = Len(dado)

    wscript.echo tamanhoTotal

    aString = """dia_json"":{"
    posDia = InStr(dado, aString)

    aString = """hora_json"":{"
    posHora = InStr(dado, aString)

    aString = """minuto_json"":{"
    posMinuto = InStr(dado, aString)

    aString = ",},}}"
    posFinal = InStr(dado, aString)
    wscript.echo posFinal

    strDataHora = Mid(dado, 3, 19) 
    wscript.echo strDataHora

    If posDia <> 0 Then
        strDia = Replace(Mid(dado, posDia, tamanhoTotal),aString,",}")
        wscript.echo posDia
    End If
    
    
    If posHora <> 0 and posDia <> 0 Then
        strHora = Mid(dado, posHora, posDia - posHora - 1)
        wscript.echo posHora
    ElseIf posHora <> 0 Then
        strHora = Replace(Mid(dado, posHora, tamanhoTotal - 3),aString,",}")
    End If

    
    

     
    If posMinuto <> 0 and posHora <> 0 Then
        strMinuto = Mid(dado, posMinuto, posHora - posMinuto - 1) 
        wscript.echo posMinuto
    Else
        strMinuto = Mid(dado, posMinuto, tamanhoTotal - 3) 
    End If
  
    if (boolEscreveDado = 1) then
        retornaDatabasePelaData nomeArquivoAtual 

        ' AbrirBanco

        readDadosArquivos = armazenaDadosNoBanco(strDataHora, strMinuto, strHora, strDia)
        ' retornoAtual = armazenaDadosNoBanco(strDataHora, strMinuto, strHora, strDia)
        ' WScript.Echo "retorno readDadosArquivos " & retornoAtual
        ' readDadosArquivos = retornoAtual

        ' FecharBanco



        'Erase dadosArquivo
    Else
        readDadosArquivos = False
    
    end if

    
    If Err.Number <> 0 Then
        WScript.Echo "nome do arquivo" & nomeArquivoAtual & "Error in readDados: " & Err.Description
        Err.Clear
    End If

    'If you no longer want to continue following an error after that block's completed,
    'call this.
    On Error Goto 0

End Function

Function armazenaDadosNoBanco(strDataHora, strMinuto, strHora, strDia)

    dim retornoAtual

    sqlQuery = "SELECT * FROM processo_valores WHERE datahora='" & strDataHora & "'"

    ' wscript.echo sqlQuery

    If (NOT executaQuerySeExiste (sqlQuery) ) Then

        sqlQuery = "INSERT INTO processo_valores VALUES ('" & strDataHora & "'"
        sqlQuery = sqlQuery & ",'" & strMinuto & "'"
        If (strHora<>"") Then
        sqlQuery = sqlQuery & ",'" & strHora & "'"
        Else
        sqlQuery = sqlQuery & ",''"
        End IF
        If (strDia<>"") Then
        sqlQuery = sqlQuery & ",'" & strDia & "'"
        Else
        sqlQuery = sqlQuery & ",''"
        End IF
        sqlQuery = sqlQuery & ")"

        wscript.echo "Inseriu " & strDataHora
        armazenaDadosNoBanco = executaQueryAffected(sqlQuery)
        ' retornoAtual = executaQueryAffected(sqlQuery)
        ' WScript.Echo "retorno insert " & retornoAtual
        ' armazenaDadosNoBanco = retornoAtual


    Else
        if (substituiDado = 1) Then
            sqlQuery = "UPDATE processo_valores SET minuto_json='" & strMinuto & "'"
            If (strHora<>"") Then
            sqlQuery = sqlQuery & ",hora_json='" & strHora & "'"
            End IF
            If (strDia<>"") Then
            sqlQuery = sqlQuery & ",dia_json='" & strDia & "'"
            End IF
            sqlQuery = sqlQuery & "Where datahora='" & strDataHora & "'"
        
            wscript.echo "Atualizou " & strDataHora
            armazenaDadosNoBanco = executaQueryAffected(sqlQuery)
            ' retornoAtual = executaQueryAffected(sqlQuery)
            ' WScript.Echo "retorno update " & retornoAtual
            ' armazenaDadosNoBanco = retornoAtual
        Else
            wscript.echo "==============>Sistema configurado para nao atualizar dados existentes "
            wscript.echo "Existe dado para " & strDataHora
        end if

    End If

    
    

    ' myRecordset.Open sqlQuery,objConnection, adOpenStatic, adLockOptimistic


End Function

Function executaQueryAffected (queryAExecutar)

    Dim recordsAffected   

    recordsAffected = 0
    ' Set myRecordset = CreateObject("ADODB.Recordset") 
    ' myRecordset.CursorLocation = adUseClient


    ' On Error Resume Next


    'Usa-se esse metodo de execução poder ter o retorno das linhas afetadas, com o recordset não consegui implementar
    ' objConnection.Execute queryAExecutar, recordsAffected
    Set myRecordset = objConnection.Execute(queryAExecutar, recordsAffected)

    '  myRecordset.Open queryAExecutar, objConnection, adOpenStatic, adLockOptimistic

    

    wscript.echo "teste: " & recordsAffected

    'first of all determine whether there are any records 
    ' If myRecordset.EOF Then
    '     executaQueryAffected = false
    ' Else       
    '     executaQueryAffected = true
    ' End If
    If recordsAffected > 0 Then
        executaQueryAffected = true
    Else 
        executaQueryAffected = false    
    End If

    

    If Err.Number <> 0 Then
        WScript.Echo "Error in executaQueryAffected: " & Err.Description
        Err.Clear
    End If

    'If you no longer want to continue following an error after that block's completed,
    'call this.
    On Error Goto 0

End Function

Function executaQueryReturnID (queryAExecutar)

    Dim recordsAffected   

    recordsAffected = 0

    'queryAExecutar = queryAExecutar & "; SELECT @@IDENTITY AS NewID;"
    Set myRecordset = CreateObject("ADODB.Recordset") 
    myRecordset.CursorLocation = adUseClient


    myRecordset.Open queryAExecutar, objConnection, adOpenStatic, adLockOptimistic

    myRecordset.Open "SELECT @@IDENTITY AS NewID", objConnection, adOpenStatic, adLockOptimistic

    'first of all determine whether there are any records 
    If myRecordset.EOF Then
        executaQueryReturnID = false
    Else  
        ' idAmostraInserida = myRecordset.Fields("NewID").value
        'wscript.echo idAmostraInserida
        
        executaQueryReturnID = true    
    End If

    

End Function

Function executaQuerySeExiste (queryAExecutar)
    AbrirBanco
    On Error Resume Next
    ' Set myRecordset = CreateObject("ADODB.Recordset") 
    ' myRecordset.CursorLocation = adUseClient

    myRecordset.Open queryAExecutar, objConnection, adOpenStatic, adLockOptimistic

    'first of all determine whether there are any records 
    If myRecordset.EOF Then
        executaQuerySeExiste = false
    Else       
        executaQuerySeExiste = true
    End If

    If Err.Number <> 0 Then
        WScript.Echo "Error in executaQuerySeExiste: " & Err.Description
        Err.Clear
    End If

    'If you no longer want to continue following an error after that block's completed,
    'call this.
    On Error Goto 0

End Function

Function procuraDataMaxima()
    wscript.echo converteDataHora( now )
End Function

Function converteData(dtTemp)
    On Error Resume Next
    Dim datahoraTemp : datahoraTemp = ""
    Dim dt
    dt = CDate(dtTemp)
    datahoraTemp = Year(dt) & "-" 
    if (Month(dt)<10) then
        datahoraTemp = datahoraTemp & "0"
    End IF
    datahoraTemp = datahoraTemp & Month(dt) & "-"
    if (Day(dt)<10) then
        datahoraTemp = datahoraTemp & "0"
    End IF
    datahoraTemp = datahoraTemp & Day(dt)
    
    converteData = datahoraTemp

    If Err.Number <> 0 Then
        WScript.Echo "Error in converteData: " & Err.Description
        Err.Clear
    End If

    'If you no longer want to continue following an error after that block's completed,
    'call this.
    On Error Goto 0

End Function
Function converteDataHoraNomeArquivo(strDataHora)
    Dim datahoraTemp : datahoraTemp = ""

    datahoraTemp = datahoraTemp & Mid(strDataHora, 1, 4) & "-" 'ano
    datahoraTemp = datahoraTemp & Mid(strDataHora, 6, 2) & "-" 'mes
    datahoraTemp = datahoraTemp & Mid(strDataHora, 9, 2) & "_" 'dia
    datahoraTemp = datahoraTemp & Mid(strDataHora, 12, 2) & "" 'hora
    datahoraTemp = datahoraTemp & Mid(strDataHora, 15, 2) & "" 'min
    datahoraTemp = datahoraTemp & Mid(strDataHora, 18, 2) & "." 'seg
    datahoraTemp = datahoraTemp & extensaoGeral 'seg

    converteDataHoraNomeArquivo = datahoraTemp
End Function

Function converteDataHoraJSON(dtTemp)
    On Error Resume Next
    Dim datahoraTemp : datahoraTemp = ""
    Dim dt
    dt = CDate(dtTemp)
    datahoraTemp = Year(dt) & "-" 
    if (Month(dt)<10) then
        datahoraTemp = datahoraTemp & "0"
    End IF
    datahoraTemp = datahoraTemp & Month(dt) & "-"
    if (Day(dt)<10) then
        datahoraTemp = datahoraTemp & "0"
    End IF
    datahoraTemp = datahoraTemp & Day(dt) & "_"
    if (Hour(dt)<10) then
        datahoraTemp = datahoraTemp & "0"
    End IF
    datahoraTemp = datahoraTemp & Hour(dt) & ""
    if (Minute(dt)<10) then
        datahoraTemp = datahoraTemp & "0"
    End IF
    datahoraTemp = datahoraTemp & Minute(dt) & ""
    if (Second(dt)<10) then
        datahoraTemp = datahoraTemp & "0"
    End IF
    datahoraTemp = datahoraTemp & Second(dt)

    converteDataHora = datahoraTemp & "." & extensaoGeral

    If Err.Number <> 0 Then
        WScript.Echo "Error in converteDataHora: " & Err.Description
        Err.Clear
    End If

    'If you no longer want to continue following an error after that block's completed,
    'call this.
    On Error Goto 0

End Function
Function converteDataHora(dtTemp)
    On Error Resume Next
    Dim datahoraTemp : datahoraTemp = ""
    Dim dt
    dt = CDate(dtTemp)
    datahoraTemp = Year(dt) & "-" 
    if (Month(dt)<10) then
        datahoraTemp = datahoraTemp & "0"
    End IF
    datahoraTemp = datahoraTemp & Month(dt) & "-"
    if (Day(dt)<10) then
        datahoraTemp = datahoraTemp & "0"
    End IF
    datahoraTemp = datahoraTemp & Day(dt) & " "
    if (Hour(dt)<10) then
        datahoraTemp = datahoraTemp & "0"
    End IF
    datahoraTemp = datahoraTemp & Hour(dt) & ":"
    if (Minute(dt)<10) then
        datahoraTemp = datahoraTemp & "0"
    End IF
    datahoraTemp = datahoraTemp & Minute(dt) & ":"
    if (Second(dt)<10) then
        datahoraTemp = datahoraTemp & "0"
    End IF
    datahoraTemp = datahoraTemp & Second(dt)

    converteDataHora = datahoraTemp

    If Err.Number <> 0 Then
        WScript.Echo "Error in converteDataHora: " & Err.Description
        Err.Clear
    End If

    'If you no longer want to continue following an error after that block's completed,
    'call this.
    On Error Goto 0

End Function

Dim datahoraBuscaValMax, datahoraBuscaAnterior

Function buscaUltimoRegistroProcessos()
    ' On Error Resume Next
    retornaDatabasePelaData datahoraBuscaValMax
    wscript.echo "datahoraBuscaValMax " & datahoraBuscaValMax
    AbrirBanco

    Set myRecordset = CreateObject("ADODB.Recordset")

    if (bancoUsado = SQLServer) Then
        sqlQuery = "SELECT TOP 1 * FROM processo_valores ORDER BY datahora DESC"
    END IF
    if (bancoUsado = MariaDB) Then
        sqlQuery = "SELECT * FROM processo_valores ORDER BY datahora DESC LIMIT 1"
    END IF


    myRecordset.Open sqlQuery,objConnection, adOpenStatic, adLockOptimistic

    'first of all determine whether there are any records 
    If myRecordset.EOF Then
        wscript.echo "Nao existem Dados para esse banco"
        ' FecharBanco
        buscaUltimoRegistroProcessos = "Nao Encontrado"
    Else 
        'if there are records then loop through the fields 
        ' Do While NOT myRecordset.Eof  
            buscaUltimoRegistroProcessos = myRecordset.Fields.Item("datahora")
        '     myRecordset.MoveNext
        ' Loop      

    End If

    FecharBanco

    

    If Err.Number <> 0 Then
        WScript.Echo "Error in buscaUltimoRegistroProcessos: " & Err.Description
        Err.Clear
    End If

    'If you no longer want to continue following an error after that block's completed,
    'call this.
    On Error Goto 0
End Function

Function retornaAnoMes(dt, tipo)

    Dim datahoraTemp

    if (tipo = 1) Then
        datahoraTemp = Year(dt) 'ano
    else        
        if (Month(dt)<10) then
            datahoraTemp = datahoraTemp & "0"
        End IF
        datahoraTemp = datahoraTemp & Month(dt) 'mes
    end if
    retornaAnoMes = datahoraTemp
End Function


cont = 0

Dim dt, strdatahoraAtual, argumento
Dim dataMaxTemp, dataAtualProcura

dt = now

datahoraBuscaValMax = converteDataHora(dt)
' dataMaxTemp = converteDataHora(dt)


' retornaDatabasePelaData("2021-07-16 12:47:10")
' AbrirBanco
' FecharBanco
wscript.echo "inicio buscaUltimoRegistroProcessos "
dataMaxTemp = buscaUltimoRegistroProcessos
wscript.echo "fim buscaUltimoRegistroProcessos "


Do while dataMaxTemp = "Nao Encontrado"

    wscript.echo "valor anterior datahoraBuscaValMax " & datahoraBuscaValMax
    datahoraBuscaValMax = converteDataHora(DateAdd("m",-1, datahoraBuscaValMax))
    wscript.echo "tentando nova data " & datahoraBuscaValMax
    dataMaxTemp = buscaUltimoRegistroProcessos
    if (dataMaxTemp <> "Nao Encontrado") Then
        dataAtualProcura = converteDataHora(DateAdd("n",1, CDate(dataMaxTemp)))
        datahoraBuscaValMax = converteDataHora(DateAdd("n",1, CDate(dataMaxTemp)))
        Exit Do
    End If
    wscript.echo dataMaxTemp
Loop

if (dataMaxTemp <> "Nao Encontrado" and dataAtualProcura <> dataMaxTemp and datahoraBuscaValMax <> dataMaxTemp) Then
    dataAtualProcura = converteDataHora(DateAdd("n",1, CDate(dataMaxTemp)))
    datahoraBuscaValMax = converteDataHora(DateAdd("n",1, CDate(dataMaxTemp)))
End If

' wscript.echo datahoraBuscaValMax

if WScript.Arguments.Count = 0 then
    WScript.Echo "Sem parametros"
else
    On Error Resume Next
    datafinalDesejada = WScript.Arguments(0)
    boolEscreveDado = WScript.Arguments(1)
    substituiDado = WScript.Arguments(2)
    ' For Each argumento In WScript.Arguments
    '     WScript.Echo argumento
    ' Next 
    If Err.Number <> 0 Then
        WScript.Echo "Error in contagem de parametros entrada: " & Err.Description
        Err.Clear
    End If

    'If you no longer want to continue following an error after that block's completed,
    'call this.
    On Error Goto 0
end if

wscript.echo "datahoraBuscaValMax final " & datahoraBuscaValMax


Dim objFile1, objFolder1, nomeArquivo1, reduzUmDia, caminhoBuscadoAtual, arquivoBuscadoAtual, datahoraBuscaValMax_dt

caminhoBuscadoAtual = strFolder & "\" & strPadraoGRD & "\" & retornaAnoMes(datahoraBuscaValMax, 1) & "\" & converteData(CDate(datahoraBuscaValMax)) & "\" 
arquivoBuscadoAtual = caminhoBuscadoAtual & converteDataHoraNomeArquivo(datahoraBuscaValMax)

wscript.echo caminhoBuscadoAtual 
wscript.echo arquivoBuscadoAtual 

Set objFSO = Nothing
Set objFolder = Nothing

datahoraBuscaValMax_dt = CDate(datahoraBuscaValMax)

Do While datahoraBuscaValMax_dt < DateAdd("n", atrasoMin, dt)

    WScript.Echo "VErificando valores do atual ate agora  "
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    
    WScript.Echo "valor do caminho  " & caminhoBuscadoAtual
    WScript.Echo "valor do arquivo  " & arquivoBuscadoAtual
    If objFSO.FolderExists(caminhoBuscadoAtual) Then
        If objFSO.FileExists( arquivoBuscadoAtual ) Then
            if(readDadosArquivos(arquivoBuscadoAtual)) Then
                ' datahoraBuscaValMax = converteDataHora(datahoraBuscaValMax)
                datahoraBuscaValMax_dt = DateAdd("n", 1, CDate(datahoraBuscaValMax))
                datahoraBuscaValMax = converteDataHora(datahoraBuscaValMax_dt)

                caminhoBuscadoAtual = strFolder & "\" & strPadraoGRD & "\" & retornaAnoMes(datahoraBuscaValMax, 1) & "\" & converteData(datahoraBuscaValMax_dt) & "\" 
                arquivoBuscadoAtual = caminhoBuscadoAtual & converteDataHoraNomeArquivo(datahoraBuscaValMax)
                WScript.Echo "Gravou dado"
                WScript.Echo "nova datahoraBuscaValMax " & converteData(datahoraBuscaValMax)
                WScript.Echo "valor do dt " & dt

            Else
                WScript.Echo "Nao Gravou dado"
                'Exit Do
            end if
        Else
            WScript.Echo "JSON Inexistente"
            WScript.Echo "nova datahoraBuscaValMax " & datahoraBuscaValMax
            WScript.Echo "valor do dt " & dt
			wscript.echo "Aguardando arquivo"
			wscript.Sleep 10000
            'Exit Do
        end if
    Else
        WScript.Echo "Pasta JSON Inexistente"
		wscript.echo "Aguardando Pasta"
		wscript.Sleep 10000
        'Exit Do
    End If

    

Loop

WScript.Echo "Finalizou VErificando valores do atual ate agora  "

Set objFSO = Nothing
Set objFolder = Nothing

Dim dataAtualProcura_dt, datafinalDesejada_dt, caminhoBuscadoAntigo, arquivoBuscadoAntigo

wscript.echo "dataAtualProcura " & dataAtualProcura
wscript.echo "datafinalDesejada " & datafinalDesejada
wscript.echo ""

dataAtualProcura_dt = CDate(dataAtualProcura)
datafinalDesejada_dt = CDate(datafinalDesejada)

caminhoBuscadoAtual = strFolder & "\" & strPadraoGRD & "\" & retornaAnoMes(datahoraBuscaValMax, 1) & "\" & converteData(datahoraBuscaValMax_dt) & "\" 
arquivoBuscadoAtual = caminhoBuscadoAtual & converteDataHoraNomeArquivo(datahoraBuscaValMax)

caminhoBuscadoAntigo = strFolder & "\" & strPadraoGRD & "\" & retornaAnoMes(dataAtualProcura, 1) & "\" & converteData(dataAtualProcura_dt) & "\" 
arquivoBuscadoAntigo = caminhoBuscadoAntigo & converteDataHoraNomeArquivo(dataAtualProcura)

reduzUmDia = true
' dataAtualProcura_dt = DateAdd("n", -1, dataAtualProcura_dt)

If (dataAtualProcura_dt >= datafinalDesejada_dt) Then


    Do While dataAtualProcura_dt >= datafinalDesejada_dt
        wscript.echo "datafinalDesejada atual 2.1 " & datafinalDesejada

        WScript.Echo "VErificando valores antigos e atuais  "
        Set objFSO = CreateObject("Scripting.FileSystemObject")

        wscript.echo "dataAtualProcura atual 2.1 " & dataAtualProcura
        WScript.Echo "valor do caminho  caminhoBuscadoAntigo atual 2.1 " & caminhoBuscadoAntigo
        WScript.Echo "valor do arquivo  arquivoBuscadoAntigo atual 2.1 " & arquivoBuscadoAntigo

        WScript.Echo "depois que Gravou dado antigo 2.1 "
        WScript.Echo "nova datahoraBuscaValMax_dt " & datahoraBuscaValMax_dt

        dt = now

        reduzUmDia = true

        If objFSO.FolderExists( caminhoBuscadoAntigo ) Then
            If objFSO.FileExists( arquivoBuscadoAntigo ) Then
                if(readDadosArquivos( arquivoBuscadoAntigo )) Then

                
                    dataAtualProcura_dt = DateAdd("n", -1, dataAtualProcura)
                    dataAtualProcura = converteDataHora(dataAtualProcura_dt)

                    wscript.echo "dataAtualProcura prox 2.1 " & dataAtualProcura


                    caminhoBuscadoAntigo = strFolder & "\" & strPadraoGRD & "\" & retornaAnoMes(dataAtualProcura, 1) & "\" & converteData(dataAtualProcura_dt) & "\" 
                    arquivoBuscadoAntigo = caminhoBuscadoAntigo & converteDataHoraNomeArquivo(dataAtualProcura)
                    
                    WScript.Echo "valor do caminho  caminhoBuscadoAntigo prox 2.1 " & caminhoBuscadoAntigo
                    WScript.Echo "valor do arquivo  arquivoBuscadoAntigo prox 2.1 " & arquivoBuscadoAntigo
                    WScript.Echo "Gravou dado antigo 2.1 "
                    WScript.Echo "nova dataAtualProcura " & dataAtualProcura
                    WScript.Echo "valor do dt " & dt

                    reduzUmDia = true
                    
                    
                Else
                    WScript.Echo "Nao Gravou dado antigo 2.1"
                    reduzUmDia = False
                    
                end if
            Else
                WScript.Echo "JSON Inexistente antigo 2.1"
                WScript.Echo "nova dataAtualProcura " & dataAtualProcura
                WScript.Echo "valor do dt " & dt
                reduzUmDia = False
            end if
        Else
            WScript.Echo "Pasta JSON Inexistente 2.1"
            reduzUmDia = False
        End IF  

        if (reduzUmDia) Then
            
            
            wscript.echo "datahoraBuscaValMax_dt 2.2 " & datahoraBuscaValMax_dt
            wscript.echo "DateAdd(n, atrasoMin, now) " & DateAdd("n", atrasoMin, dt)     

            
            If objFSO.FileExists( arquivoBuscadoAtual ) Then
                WScript.echo "Uma pausa para Precisa gravar dados novos... 2.2"
                ' wscript.sleep 2000
                Do While datahoraBuscaValMax_dt < DateAdd("n", atrasoMin, dt)

                    WScript.Echo "valor do caminho  caminhoBuscadoAtual atual 2.1" & caminhoBuscadoAtual
                    WScript.Echo "valor do arquivo  arquivoBuscadoAtual atual 2.1" & arquivoBuscadoAtual

                    If objFSO.FolderExists(caminhoBuscadoAtual) Then
                        If objFSO.FileExists( arquivoBuscadoAtual ) Then
                            if(readDadosArquivos(arquivoBuscadoAtual)) Then
                                ' datahoraBuscaValMax = converteDataHora(datahoraBuscaValMax)
                                datahoraBuscaValMax_dt = DateAdd("n", 1, datahoraBuscaValMax)
                                datahoraBuscaValMax = converteDataHora(datahoraBuscaValMax_dt)

                                caminhoBuscadoAtual = strFolder & "\" & strPadraoGRD & "\" & retornaAnoMes(datahoraBuscaValMax, 1) & "\" & converteData(datahoraBuscaValMax_dt) & "\" 
                                arquivoBuscadoAtual = caminhoBuscadoAtual & converteDataHoraNomeArquivo(datahoraBuscaValMax)

                                WScript.Echo "valor do caminho  caminhoBuscadoAtual prox 2.1" & caminhoBuscadoAtual
                                WScript.Echo "valor do arquivo  arquivoBuscadoAtual prox 2.1" & arquivoBuscadoAtual

                                WScript.Echo "Gravou dado novo 2.2"
                                WScript.Echo "nova datahoraBuscaValMax " & datahoraBuscaValMax
                                WScript.Echo "nova datahoraBuscaValMax_dt " & datahoraBuscaValMax_dt
                                WScript.Echo "valor do dt " & dt

                            Else
                                WScript.Echo "Nao Gravou dado novo 2.2"
                                Exit Do
                            end if
                        Else
                            WScript.Echo "JSON Inexistente 2.2"
                            WScript.Echo "nova datahoraBuscaValMax " & datahoraBuscaValMax
                            WScript.Echo "nova datahoraBuscaValMax_dt " & datahoraBuscaValMax_dt
                            WScript.Echo "valor do dt - 2 eh " & DateAdd("n", atrasoMin, dt)
                            Exit Do
                        end if
                    Else
                        WScript.Echo "Pasta JSON Inexistente 2.2"
                        WScript.Echo "nova datahoraBuscaValMax " & datahoraBuscaValMax
                        WScript.Echo "nova datahoraBuscaValMax_dt " & datahoraBuscaValMax_dt
                        WScript.Echo "valor do dt - 2 eh " & DateAdd("n", atrasoMin, dt)
                        Exit Do
                    End If
                Loop
            Else
                WScript.echo "continua procurando para tras.."

                WScript.Echo "Não eh o momento para gravar 2.2"
                WScript.Echo "nova datahoraBuscaValMax " & datahoraBuscaValMax
                WScript.Echo "nova datahoraBuscaValMax_dt " & datahoraBuscaValMax_dt
                WScript.Echo "valor do dt - 2 eh " & DateAdd("n", atrasoMin, dt)
            End If
            reduzUmDia = false
            
        Else

            wscript.echo "Esperando a criacao do arquivo: " & nomeArquivo1

            If Err.Number <> 0 Then
            wscript.echo "Error # " & Err.Number & ": " & Err.Description & " (" & Err.Source & ")"
            Else
                wscript.echo "Executando espera do arquivo: " & cont
            End If

            Err.clear

            WScript.Echo "main datahoraBuscaValMax " & datahoraBuscaValMax
            WScript.Echo "main datahoraBuscaValMax_dt " & datahoraBuscaValMax_dt
            WScript.Echo "main valor do dt - 2 eh " & DateAdd("n", atrasoMin, dt)
            WScript.Echo "main dataAtualProcura " & dataAtualProcura
            WScript.Echo "main datafinalDesejada_dt " & datafinalDesejada_dt

            cont = cont + 1
            If(cont>10)Then
                cont = 0
            End If
                      
            wscript.Sleep 10000 
        End if

        

    
    Loop

End If

WScript.Echo "finalizou VErificando valores antigos e atuais  "

Set objFSO = Nothing
Set objFolder = Nothing



caminhoBuscadoAtual = strFolder & "\" & strPadraoGRD & "\" & retornaAnoMes(datahoraBuscaValMax, 1) & "\" & converteData(datahoraBuscaValMax_dt) & "\" 
arquivoBuscadoAtual = caminhoBuscadoAtual & converteDataHoraNomeArquivo(datahoraBuscaValMax)

WScript.Echo "Entrou da Rotina principal  "
Set objFSO = CreateObject("Scripting.FileSystemObject")



Do
    If Err.Number <> 0 Then
        wscript.echo "Error # " & Err.Number & ": " & Err.Description & " (" & Err.Source & ")"
    Else
        wscript.echo "Executando: " & cont
    End If

    Err.clear

    dt = now
    wscript.echo "datahoraBuscaValMax_dt 3" & datahoraBuscaValMax_dt
    wscript.echo "DateAdd(n, atrasoMin, now) " & DateAdd("n", atrasoMin, now)
    
    
    if (datahoraBuscaValMax_dt < DateAdd("n", atrasoMin, dt) ) Then

        Do While datahoraBuscaValMax_dt < DateAdd("n", atrasoMin, dt)

            If objFSO.FolderExists(caminhoBuscadoAtual) Then
                If objFSO.FileExists( arquivoBuscadoAtual ) Then
                    if(readDadosArquivos(arquivoBuscadoAtual)) Then
                        ' datahoraBuscaValMax = converteDataHora(datahoraBuscaValMax)
                        datahoraBuscaValMax_dt = DateAdd("n", 1, CDate(datahoraBuscaValMax))
                        datahoraBuscaValMax = converteDataHora(datahoraBuscaValMax_dt)

                        caminhoBuscadoAtual = strFolder & "\" & strPadraoGRD & "\" & retornaAnoMes(datahoraBuscaValMax, 1) & "\" & converteData(datahoraBuscaValMax_dt) & "\" 
                        arquivoBuscadoAtual = caminhoBuscadoAtual & converteDataHoraNomeArquivo(datahoraBuscaValMax)
                        WScript.Echo "Gravou dado novo 3"
                        WScript.Echo "nova datahoraBuscaValMax " & converteData(datahoraBuscaValMax)
                        WScript.Echo "valor do dt " & dt

                    Else
                        WScript.Echo "Nao Gravou dado novo 3"
                        
                    end if
                Else
                    WScript.Echo "JSON Inexistente 3: " & arquivoBuscadoAtual
                    WScript.Echo "nova datahoraBuscaValMax " & datahoraBuscaValMax
                    WScript.Echo "nova datahoraBuscaValMax_dt " & datahoraBuscaValMax_dt
                    WScript.Echo "valor do dt - 2 eh " & DateAdd("n", atrasoMin, dt)
                    Exit Do
                end if
            Else
                WScript.Echo "Pasta JSON Inexistente 3"
                WScript.Echo "nova datahoraBuscaValMax " & datahoraBuscaValMax
                WScript.Echo "nova datahoraBuscaValMax_dt " & datahoraBuscaValMax_dt
                WScript.Echo "valor do dt - 2 eh " & DateAdd("n", atrasoMin, dt)
                Exit Do
            End If
        Loop
    Else
        WScript.Echo "Não eh o momento para gravar 3"
        WScript.Echo "nova datahoraBuscaValMax " & datahoraBuscaValMax
        WScript.Echo "nova datahoraBuscaValMax_dt " & datahoraBuscaValMax_dt
        WScript.Echo "valor do dt - 2 eh " & DateAdd("n", atrasoMin, dt)
    End If

'     'procuraArquivos "json", strFolder & "\" & strPadraoGRD & "\2021\2021-07-14", 0
    
' '     wscript.echo strFolder
' '     wscript.echo strFolder & "\" & strPadraoGRD & "\" & CStr(Year(dt)) & "\" & converteData(dt)
' '     wscript.echo converteDataHora(dt)
' '     'wscript.echo buscaUltimoRegistroProcessos


' '     procuraArquivos "json", strFolder & "\" & strPadraoGRD & "\" & CStr(Year(dt)) & "\" & converteData(dt)

' '     dt = DateAdd("d",-1,dt)

    cont = cont + 1
    If(cont>10)Then
        cont = 0
    End If

    wscript.Sleep 10000 

Loop