none
Script em VB nao está apendando RRS feed

  • Pergunta

  • Pessoal, preciso de um help. Tenho um srcript em VB que em algumas maquinas ele apenda as informacoes e em outras maquinas ele nao apenda.... Por exemplo, quando roda o script em uma determinada maquina ( obs ambas maquinas possuem a mesma imagem ) ele grava as informacoes no mesmo arquivo, uma em cada linha. Já em uma outra maquina ele grava as informacoes de saida no mesmo arquivo porém sobrepondo a linha anterior. Eu gostaria que ele continua-se gravando uma informacao em cada linha...dividido por datas. Segue o script para verem se estou errando algo -----------

    Dim objArq, strArquivo, objArquivo, data_hoje

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set WSHNetwork = CreateObject("WScript.Network")
    data_hoje = date
    strUsuario = WSHNetwork.UserName
    strComputador = WSHNetwork.ComputerName
    'strArquivo = strUsuario & "_" & strComputador & ".txt"
    strArquivo = "Log_User.txt"

    Set objArq = CreateObject("Scripting.FileSystemObject")

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

    'objArquivo.WriteLine( "Logon : " & Now )
    objArquivo.WriteLine(Now &" Usuário : " & strUsuario & " Computador :"& strComputador)
    objArquivo.Close
    segunda-feira, 4 de julho de 2011 12:49

Respostas

  • Sim, na proxima segunda ele vai substituir.

    Se vc quer ter por dia, então não utilize dia da semana, utilize data no formato YYYYMMDD ou DDMMYYYY, segue exemplo com DDMMYYYY.txt

    strArquivo = right("0" & day(now),2) & right("0" & month(now),2) & year(now) & ".txt"


    Fábio de Paula Junior
    • Marcado como Resposta Felipegds segunda-feira, 4 de julho de 2011 18:23
    • Não Marcado como Resposta Felipegds segunda-feira, 4 de julho de 2011 18:25
    • Marcado como Resposta Felipegds segunda-feira, 4 de julho de 2011 18:30
    segunda-feira, 4 de julho de 2011 18:16
    Moderador

Todas as Respostas

  • Felipe,

    Faça a tentativa do exemplo abaixo, retirei aquela parte que confere se o arquivo existe, a linha com o método OpenTextFile que vc utiliza cria o arquivo caso ele não existe (por causa do parametro create que vc passou como TRUE).

    Dim objArq, strArquivo, objArquivo, data_hoje
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set WSHNetwork = CreateObject("WScript.Network")
    data_hoje = date
    strUsuario = WSHNetwork.UserName
    strComputador = WSHNetwork.ComputerName
    'strArquivo = strUsuario & "_" & strComputador & ".txt"
    strArquivo = "Log_User.txt"
    
    Set objArq = CreateObject("Scripting.FileSystemObject")
    
    Set objArquivo = objArq.OpenTextFile( "\\server\log$\" & strArquivo, 8, True)
    
    
    'objArquivo.WriteLine( "Logon : " & Now )
    objArquivo.WriteLine(Now &" Usuário : " & strUsuario & " Computador :"& strComputador)
    objArquivo.Close 
    

    Referência(s):

    http://msdn.microsoft.com/en-us/library/314cz14s(v=vs.85).aspx

     


    Fábio de Paula Junior
    segunda-feira, 4 de julho de 2011 15:42
    Moderador
  • Perfeito cara!!!

    agora está dando certo!!

    MUITO OBRIGADO!

    só deixa eu te perguntar uma outra coisa, como faco para que esse arquivo criado contenha o nome do dia de hoje?

    quero dividir os arquivos por datas.

    Obrigado!!!

    segunda-feira, 4 de julho de 2011 17:17
  • Troque a linha

    strArquivo = "Log_User.txt"

    por

    strArquivo = weekdayname(weekday(now)) &  ".txt" 'ele vai pegar o nome do dia no idioma onde está sendo executado

    Para pegar sempre o mesmo nome independente do idioma substitua por duas linhas

    arrDia=array("","Domingo","Segunda-Feira","Terça-Feira","Quarta-Feira","Quinta-Feira","Sexta-Feira","sábado")
    strArquivo = arrDia(weekday(now)) &  ".txt"

     


    Fábio de Paula Junior
    segunda-feira, 4 de julho de 2011 17:56
    Moderador
  • Show de bola.

    Quando uso o ->

    strArquivo = weekdayname(weekday(now)) &  ".txt" 'ele vai pegar o nome do dia no idioma onde está sendo executado

    le pega o padrao do primeiro usuario que loga.

    e depois cria outros arquivos para os outros padroes de datas.

     

    Quando uso o ->

    arrDia=array("","Domingo","Segunda-Feira","Terça-Feira","Quarta-Feira","Quinta-Feira","Sexta-Feira","sábado")
    strArquivo = arrDia(weekday(now)) &  ".txt"

    

    ele criou corretamente, só que o problema é que...

     

    

    quando chegar na proxima segunda feira, ele nao vai substituir o arquivo da segunda feira anterior?

    

    nao há a possibilidade de ele adotar um padrao para as configuracoes regionais, independente do computador que executar o script?

    segunda-feira, 4 de julho de 2011 18:10
  • Sim, na proxima segunda ele vai substituir.

    Se vc quer ter por dia, então não utilize dia da semana, utilize data no formato YYYYMMDD ou DDMMYYYY, segue exemplo com DDMMYYYY.txt

    strArquivo = right("0" & day(now),2) & right("0" & month(now),2) & year(now) & ".txt"


    Fábio de Paula Junior
    • Marcado como Resposta Felipegds segunda-feira, 4 de julho de 2011 18:23
    • Não Marcado como Resposta Felipegds segunda-feira, 4 de julho de 2011 18:25
    • Marcado como Resposta Felipegds segunda-feira, 4 de julho de 2011 18:30
    segunda-feira, 4 de julho de 2011 18:16
    Moderador
  • Cara!

    Muito obrigado pela forca!

    Muito agradecido hehehe

    Até mais!

    segunda-feira, 4 de julho de 2011 18:31
  • Consigo obter mais informacoes usando o WSHNetwork ? Como o ip por exemplo...mac address....
    segunda-feira, 4 de julho de 2011 18:45