none
Script Sobrepondo Saidas RRS feed

  • Pergunta

  • Opa Pessoal!!

    Gostaria de uma ajuda, tenho .vbs que coleta informacoes de username data hora e computador que o usuario logou.

    Porem, a cada logon valido de usuario, uma saida está sobrepondo a outra....

    Por exemplo se 10 usuarios logam, cada logon sobrepoe os dados no arquivo .txt

    sendo que eu preciso que fiquem todos em um unico arquivo dividido por data.

    Outro problema é que ele pega a configuracao regional do cliente, e nao a do servidor, e as datas as vezes ficam no padrao do brasil, e as vezes no padrao dos EUA.

    Segue o script abaixo :

     

    Dim objArq, strArquivo, objArquivo, datahoje

    Set objFSO      = CreateObject("Scripting.FileSystemObject")
    Set WSHNetwork  = CreateObject("WScript.Network")
    datahoje  = date
    datahoje = replace(datahoje,"/", "_")
    strUsuario     = WSHNetwork.UserName
    strComputador  = WSHNetwork.ComputerName
    'strArquivo    = strUsuario & "_" & strComputador & ".txt"
    strArquivo     = datahoje&"_Log_User.txt"

    Set objArq     = CreateObject("Scripting.FileSystemObject")

    If objFSO.FileExists( strArquivo ) then
     Set objArquivo = objArq.OpenTextFile( "\\server\share$\" & strArquivo, 8, True)
    Else
     Set objArquivo = objArq.CreateTextFile( "\\server\share$\" & strArquivo, True)
    End If

    'objArquivo.WriteLine( "Logon : " & Now )
    objArquivo.WriteLine(Now & " " & " Usuário : " & strUsuario & " Computador :"& strComputador)
    objArquivo.Close

     

     

    quinta-feira, 12 de maio de 2011 16:00

Respostas

  • Fiz duas alterações.(em negrito)

    Na primeira formatei a data de forma que sempre exiba dd_mm_yyyy.

    Em seguida retirei aquela verificação do arquivo existente. Utilizando o método OpenTextFile com o terceiro parametro igual a TRUE (vc já estava utilizando) ele cria o arquivo caso ele não exista. O segundo parametro com valor 8 é o que diz que ele tem que "apendar".

    Rodei o script 3 vezes e ele não apagou o arquivo e sim "apendou" os registro

    ----------- Exemplo do arquivo que gerei.

    19/05/2011 14:59:33  Usuário : fpjunior Computador :XYZ
    19/05/2011 14:59:39  Usuário : fpjunior Computador :XYZ
    19/05/2011 14:59:40  Usuário : fpjunior Computador :XYZ

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

     

    Dim objArq, strArquivo, objArquivo, datahoje

    Set objFSO      = CreateObject("Scripting.FileSystemObject")
    Set WSHNetwork  = CreateObject("WScript.Network")
    datahoje  = date
    datahoje = day(datahoje) & "_" & month(datahoje) & "_" & year(datahoje)
    strUsuario     = WSHNetwork.UserName
    strComputador  = WSHNetwork.ComputerName
    'strArquivo    = strUsuario & "_" & strComputador & ".txt"
    strArquivo     = datahoje&"_Log_User.txt"

    Set objArq     = CreateObject("Scripting.FileSystemObject")


    Set objArquivo = objArq.OpenTextFile( "\\server\share$\" & strArquivo, 8, True)


    'objArquivo.WriteLine( "Logon : " & Now )
    objArquivo.WriteLine(Now & " " & " Usuário : " & strUsuario & " Computador :"& strComputador)
    objArquivo.Close

     

    Referências:

    http://www.computerperformance.co.uk/vbscript/vbscript_file_opentextfile.htm

    http://www.devguru.com/technologies/vbscript/quickref/filesystemobject_opentextfile.html


    Fábio de Paula Junior
    quinta-feira, 19 de maio de 2011 18:08
    Moderador

Todas as Respostas

  • na verdade o script nao está "apendando" alguem pode dar alguma luz? =)
    terça-feira, 17 de maio de 2011 13:52
  • Fiz duas alterações.(em negrito)

    Na primeira formatei a data de forma que sempre exiba dd_mm_yyyy.

    Em seguida retirei aquela verificação do arquivo existente. Utilizando o método OpenTextFile com o terceiro parametro igual a TRUE (vc já estava utilizando) ele cria o arquivo caso ele não exista. O segundo parametro com valor 8 é o que diz que ele tem que "apendar".

    Rodei o script 3 vezes e ele não apagou o arquivo e sim "apendou" os registro

    ----------- Exemplo do arquivo que gerei.

    19/05/2011 14:59:33  Usuário : fpjunior Computador :XYZ
    19/05/2011 14:59:39  Usuário : fpjunior Computador :XYZ
    19/05/2011 14:59:40  Usuário : fpjunior Computador :XYZ

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

     

    Dim objArq, strArquivo, objArquivo, datahoje

    Set objFSO      = CreateObject("Scripting.FileSystemObject")
    Set WSHNetwork  = CreateObject("WScript.Network")
    datahoje  = date
    datahoje = day(datahoje) & "_" & month(datahoje) & "_" & year(datahoje)
    strUsuario     = WSHNetwork.UserName
    strComputador  = WSHNetwork.ComputerName
    'strArquivo    = strUsuario & "_" & strComputador & ".txt"
    strArquivo     = datahoje&"_Log_User.txt"

    Set objArq     = CreateObject("Scripting.FileSystemObject")


    Set objArquivo = objArq.OpenTextFile( "\\server\share$\" & strArquivo, 8, True)


    'objArquivo.WriteLine( "Logon : " & Now )
    objArquivo.WriteLine(Now & " " & " Usuário : " & strUsuario & " Computador :"& strComputador)
    objArquivo.Close

     

    Referências:

    http://www.computerperformance.co.uk/vbscript/vbscript_file_opentextfile.htm

    http://www.devguru.com/technologies/vbscript/quickref/filesystemobject_opentextfile.html


    Fábio de Paula Junior
    quinta-feira, 19 de maio de 2011 18:08
    Moderador