Usuário com melhor resposta
Chamar procedimento de outro script

Pergunta
-
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
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 -
-
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 -
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 SubE 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 subDuvida:
So na entendi como ler e chamar a rotina MostrarMensagem(strMsg) que esta no arquivo funcoes.vbs
Valeu
-
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 -
-
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 -
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 -
-
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