none
Script com condição, gerando arquivo de controle no Profile após execução. RRS feed

  • Pergunta

  • Pessoal,

    Preciso criar uma condição dentro de qualquer script VBS, na qual seja identificado se determinado arquivo existe, sem sim, finaliza o script sem executar nada, caso contrário, executa o restante do script e cria o arquivo de controle.

     

    Algo do tipo:

    Se existe x.log entao

    FIM (por que o script já teria sido executado anteriormente).

    Se nao

    Continua script e cria x.log no perfil do usuário logado, para evitar que seja executado novamente na próxima vez.

     

    Alguêm pode auxiliar?

    terça-feira, 11 de maio de 2010 17:19

Respostas

  • Segue as alterações.

    Set objShell=CreateObject("WScript.Shell")
    strUserProfile = objShell.ExpandEnvironmentStrings("%Userprofile%")

    sFileName = strUserProfile & "\x.log"
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    If Not objFSO.FileExists(sFileName) Then
        set objFile = objFSO.createtextfile(sFileName)
        objFile.WriteLine("Teste")
        objFile.Close
    End If

    Qualquer dúvida poste.

    Abraço.


    Gabriel Nascimento MCP / MCSA / CCNA http://gabrielnascimentoit.spaces.live.com -- Se for útil vote.
    • Marcado como Resposta Edson S Freitas quinta-feira, 13 de maio de 2010 14:47
    quinta-feira, 13 de maio de 2010 13:41

Todas as Respostas

  • Edson adicione o código do seu script onde está em negrito, se o arquivo não existir ele irá executar, se existir não vai fazer nada.

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    If Not objFSO.FileExists("C:\x.log") Then
        'Coloque seu script aqui
    End If

    Qualquer dúvida poste e se for útil vote.

    Abraço.


    Gabriel Nascimento MCP / MCSA / CCNA http://gabrielnascimentoit.spaces.live.com -- Se for útil vote.
    terça-feira, 11 de maio de 2010 17:42
  • Gabriel,

    Mas como faço para criar o x.log após a execução do scritp?

    Obrigado.

    terça-feira, 11 de maio de 2010 17:48
  • Segue,

    sFileName = "C:\x.log"
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    If Not objFSO.FileExists(sFileName) Then
        set objFile = objFSO.createtextfile(sFileName)
        objFile.WriteLine("Teste")
        objFile.Close
    End If

    Abraço.


    Gabriel Nascimento MCP / MCSA / CCNA http://gabrielnascimentoit.spaces.live.com -- Se for útil vote.
    terça-feira, 11 de maio de 2010 18:50
  • Gabriel,

    Consegui utilizar seu script, porém ele grava no c:\, que até então foi o que eu havia precisava. Porém essa condição não satisfaz minha necessidade já que eu quero que o script execute uma vez por login. Preciso que o script gere o arquivo de log no profile do usuário.

    Pode me sugerir uma alteração para gravar utilizando a variável %USERPROFILE% ou algo do gênero?

    Obrigado.

    quinta-feira, 13 de maio de 2010 13:34
  • Segue as alterações.

    Set objShell=CreateObject("WScript.Shell")
    strUserProfile = objShell.ExpandEnvironmentStrings("%Userprofile%")

    sFileName = strUserProfile & "\x.log"
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    If Not objFSO.FileExists(sFileName) Then
        set objFile = objFSO.createtextfile(sFileName)
        objFile.WriteLine("Teste")
        objFile.Close
    End If

    Qualquer dúvida poste.

    Abraço.


    Gabriel Nascimento MCP / MCSA / CCNA http://gabrielnascimentoit.spaces.live.com -- Se for útil vote.
    • Marcado como Resposta Edson S Freitas quinta-feira, 13 de maio de 2010 14:47
    quinta-feira, 13 de maio de 2010 13:41