none
O que está errado aqui no script? RRS feed

  • Pergunta

  • Caros, podem ajudar-me? Porque é que um script escreve no txt se enviar para o folder Temp e o outro script dá erro tentando escrever numa pasta qualquer. Nota se adicionar o caminho todo escreve na pasta.

    Aqui vai os códigos:

    Sem erro escreve no %temp% o ficheiro testeip.txt com a informação do IP Address

    DIM fso, GuyFile, objShell
    Set objShell = CreateObject("Wscript.Shell")
    Set fso = CreateObject("Scripting.FileSystemObject")
    GuyFile = fso.GetSpecialFolder(2) & "/IP.txt"
    objShell.Run "%comspec% /c ipconfig > " & guyfile, 1, True

    O mesmo script escrevendo para outra directoria dá o erro Object Doesn't Support This Property or Method 800A01B6

    DIM fso, GuyFile, objShell
    Set objShell = CreateObject("Wscript.Shell")
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set Folder = fso.GetFolder("C:\Dados\")
    Set GuyFile = folder.CreateTextFile("IP.txt")
    objShell.Run "%comspec% /c ipconfig > " & guyfile, 1, True

    O mesmo script praticamente igual ao de cima escreve na mesma directoria e sem qualquer erro.

    DIM fso, GuyFile, objShell
    Set objShell = CreateObject("Wscript.Shell")
    Set fso = CreateObject("Scripting.FileSystemObject")
    objShell.Run "%comspec% /c ipconfig > C:\Dados\IP.txt", 1, True

    Alguém pode ajudar-me a compreender isto? Porque é que não posso adicionar uma variavel depois do ipconfig >? Sinceramente não estou a compreender o porque do erro.

    Obrigado pela colaboração

    terça-feira, 15 de março de 2011 22:56

Respostas

  • O objeto GuyFile não tem a proprieda name.

    Claro que você pode utilizar variaveis, mas o objeto deve dar suporte. Veja o uso com a váriavel Folder (que possui a propriedade Path).

    DIM fso, GuyFile, objShell
    Set objShell = CreateObject("Wscript.Shell")
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set Folder = fso.GetFolder("C:\Dados\")
    Set GuyFile = folder.CreateTextFile("IP.txt")

    GuyFile.close  'fecha o arquivo que acabou de criar
    objShell.Run "%comspec% /c ipconfig > " & Folder.Path & "\IP.txt", 1, True

    na ultima linha voce deve montar uma string e o objeto que vc estava usando não é uma string.


    Fábio de Paula Junior

    • Sugerido como Resposta Fábio JrModerator sexta-feira, 18 de março de 2011 03:22
    • Marcado como Resposta Richard Juhasz terça-feira, 22 de março de 2011 19:30
    sexta-feira, 18 de março de 2011 03:20
    Moderador