Descrição:
Como retornar o resultado da execução de um script do objeto WSH – Windows Script Host (WScript Object) disparado a partir E3? Por exemplo: posso obter a string do resultado da execução de um comando via Command Prompt?
Solução:
Sim, é possível retornar o resultado da execução de um script do WSH disparado via Elipse E3. Para isso, é preciso entender melhor o que é o Windows Script Host, e como ele funciona.
O Windows Script Host, também conhecido como “WSH”, é uma infraestrutura de script abrangente para a plataforma Microsoft® Windows®. O Windows Script fornece dois mecanismos de script: o Visual Basic® Scripting Edition e o Microsoft JScript®. Essas ferramentas permitem o desenvolvimento de scripts para a realização de várias tarefas dentro do ambiente Windows. Como o ambiente WSH é extensível, também é possível utilizar outras linguagens de programação, como por exemplo Python, entre outros.
Ele também inclui vários métodos de automação compatíveis com a plataforma COM, permitindo assim a execução de tarefas por meio do modelo de objetos do WSH.
Portanto, para retornar a string contendo o resultado da execução do comando via prompt no Elipse E3, será criado um objeto WshShell, utilizando a função StdOut.ReadAll do método Exec():
Sub CommandButton2_Click() strCMD = "Xcopy ""C:SourceDoc1.txt"" ""E:Destination"" /Y" Set WshShell = CreateObject("WSCript.shell") strReturn = WshShell.Exec(strCMD).StdOut.ReadAll msgbox strReturn End Sub
Exemplo de utilização realizando o comando ping:
Sub CommandButton1_Click() strCMD = "ping 192.168.8.8" set WshShell = CreateObject("WScript.Shell") strResult = WshShell.Exec(strCMD).StdOut.ReadAll MsgBox strResult End Sub