none
Chamar procedimento de outro script RRS feed

Respostas

  • Olá,

    desculpe, mas eu errei. A função execute só funciona com atribuições. Eu usava aqui com constantes, não com funções. A única saída então é usar arquivos WSF.

    Ainda assim, na documentação aparentemente funciona:

    http://msdn2.microsoft.com/en-us/library/03t418d2.aspx

    []s,

    --
    Vinicius Canto <scripterbr_at_gmail_dot_com>
    MVP Visual Developer - Scripting
    MCP Windows 2000 Server, Windows XP e SQL Server 2000
    Blog sobre Scripting: http://viniciuscanto.blogspot.com




    terça-feira, 1 de maio de 2007 22:59
    Moderador

Todas as Respostas

  • Olá,

    falta algo (tanto no VBScript quanto no WSH) para ler arquivos externos. O WSH até possui, usando arquivos WSF, que nada mais são do que um XML com script dentro... e que suporta inclusão e outros recursos legais. Vale a pena pesquisar.

    Como solução parcial, temos uma estratégia: ler o outro arquivo inteiro em uma variável, e em seguida executar essa variável. Veja:

    set fso = wscript.createobject("scripting.filesystemobject")
    set sh = wscript.createobject("wscript.shell")

    'para carregar seu vbs, apenas use essa funcao
    sub load(strfile)   'strfile é a string com o nome do arquivo
      Set f = fso.OpenTextFile(strfile)
      constantes =   f.ReadAll
      f.close
      execute constantes
    end sub


    []s,

    --
    Vinicius Canto <scripterbr_at_gmail_dot_com>
    MVP Visual Developer - Scripting
    MCP Windows 2000 Server, Windows XP e SQL Server 2000
    Blog sobre Scripting: http://viniciuscanto.blogspot.com

    quarta-feira, 25 de abril de 2007 16:06
    Moderador
  • Gostaria de ter em um arquivo que tivesse esses procedimentos ou sub-rotinas e outros arquivos so buscar no nome passando parametros...

    Entendeu?

    quarta-feira, 25 de abril de 2007 16:29
  • Oi,

    ué, mas qual o problema? O script que eu te passei faz exatamente isso: ele lê um segundo arquivo e executa ele. Assim, se no segundo arquivo tiver alguma função ou procedimento, ela vai ficar disponível para o primeiro também... aí é só vc chamar, passando o parâmetro que quiser.

    Não é nem de longe uma saída bonita do ponto de vista de programação, mas funciona bem.

    []s,

    --
    Vinicius Canto <scripterbr_at_gmail_dot_com>
    MVP Visual Developer - Scripting
    MCP Windows 2000 Server, Windows XP e SQL Server 2000
    Blog sobre scripting: http://viniciuscanto.blogspot.com
    quinta-feira, 26 de abril de 2007 12:54
    Moderador
  • Vinicius, blza?

     

    to apanhando um pouco...

     

    tenho um arquivo chamada funcoes.vbs e nele tenho por exemplo a rotina...

     

    Sub MostrarMensagem(strMsg)
     msgbox (strMsg)
    End Sub

     

    E em outro arquivo colocar a q vc passou...

     

    set fso = wscript.createobject("scripting.filesystemobject")
    set sh = wscript.createobject("wscript.shell")

    'para carregar seu vbs, apenas use essa funcao
    sub load(strfile)   'strfile é a string com o nome do arquivo
      Set f = fso.OpenTextFile(strfile)
      constantes =   f.ReadAll
      f.close
      execute constantes
    end sub

     

    Duvida:

    So na entendi como ler e chamar a rotina MostrarMensagem(strMsg) que esta no arquivo funcoes.vbs

     

    Valeu

    sexta-feira, 27 de abril de 2007 10:25
  • Ok, vamos mais devagar...

    No arquivo principal, basta colocar

    set fso = wscript.createobject("scripting.filesystemobject")
    set sh = wscript.createobject("wscript.shell")

    'para carregar seu vbs, apenas use essa funcao
    sub load(strfile)   'strfile é a string com o nome do arquivo
      Set f = fso.OpenTextFile(strfile)
      constantes =   f.ReadAll
      f.close
      execute constantes
    end sub

    e logo na sequencia, usar minha função para ler quantos arquivos você quiser.

    load "teste.vbs"
    load "funcoes.vbs"
    load "minhasfuncoes.vbs"


    Minha função faz todo o trabalho chato... abrir o arquivo, ler e executar... aí vc pode chamar as suas funções normalmente.


    []s,

    Vinicius Canto  
    sexta-feira, 27 de abril de 2007 23:17
    Moderador
  • Tenho por exemplo

     

    Sub MostrarMensagem
     msgbox "Teste"
    End Sub

     

     

    Ao chamar no arquivo principal apos carregar o arquivo load "funcoes.vbs"

     

    da erro: tipos incompativeis: 'MostrarMensagem'

     

    P q?

    segunda-feira, 30 de abril de 2007 16:13
  • Olá,

    desculpe, mas eu errei. A função execute só funciona com atribuições. Eu usava aqui com constantes, não com funções. A única saída então é usar arquivos WSF.

    Ainda assim, na documentação aparentemente funciona:

    http://msdn2.microsoft.com/en-us/library/03t418d2.aspx

    []s,

    --
    Vinicius Canto <scripterbr_at_gmail_dot_com>
    MVP Visual Developer - Scripting
    MCP Windows 2000 Server, Windows XP e SQL Server 2000
    Blog sobre Scripting: http://viniciuscanto.blogspot.com




    terça-feira, 1 de maio de 2007 22:59
    Moderador
  • Encontrei outra saída: O objeto MSScriptControl.ScriptControl

    http://www.microsoft.com/mind/0799/script/script.asp

    e

    http://www.microsoft.com/technet/scriptcenter/topics/winpsh/convert/inputbox.mspx

    Logo logo publico no meu blog também:

    http://viniciuscanto.blogspot.com


    []s,

    --
    Vinicius Canto <scripterbr_at_gmail_dot_com>
    MVP Visual Developer - Scripting
    MCP Windows 2000 Server, Windows XP e SQL Server 2000
    Bacharelando em Ciências da Computação - USP

    Blog sobre scripting: http://viniciuscanto.blogspot.com
    sábado, 12 de maio de 2007 19:54
    Moderador
  • Bom dia Vinicius,

     

    Você teria algum script para instalar uma impressora no momento de login do usuário??

     

    Obrigado

     

    Flávio Bispo

    quinta-feira, 24 de maio de 2007 13:56
  • Olá,


    duas coisas:

    1) Não envie uma pergunta diretamente em uma thread que não tem nada a ver com o assunto. Crie uma thread nova e coloque a pergunta nela

    2) http://www.microsoft.com/technet/scriptcenter/scripts/printing/default.mspx


    []s,

    --
    Vinicius Canto <scripterbr_at_gmail_dot_com>
    MVP Visual Developer - Scripting
    MCP Windows 2000 Server, Windows XP e SQL Server 2000
    Blog sobre Scripting: http://viniciuscanto.blogspot.com

    domingo, 27 de maio de 2007 02:03
    Moderador