Erros e armadilhas comuns
No VBScriptA linguagem de Visual Basic Scripting é uma linguagem de programação de alto nível desenvolvida pela Microsoft®., há dois tipos de variável:
Tipo de variável | Descrição |
---|---|
Simples | Variáveis de tipo verdadeiro, como inteiro, booleano, cadeia de caracteres. |
Objetos | Itens complexos cuja funcionalidade é exposta pela interface dos objetos de automação. |
É importante declarar os tipos dos objetos de automação como Objeto antes de atribuir valores a eles.
Importante
É altamente recomendável atribuir um valor a todas as variáveis e/ou objetos declarados.
Exemplo
Function Main
'declara o objeto a ser usado
Dim nameStr As String
'atribui um valor à variável
nameStr = “Esta é uma atribuição teste de texto"
'mostra o resultado na janela de atividade do verificador da atribuição
echo nameStr
'retorna o resultado
Main = true
End Function
Para dar um exemplo mais avançado, o script abaixo listará quais serviços foram instalados na máquina de destino (localhost = 127.0.0.1). 3. Copie e cole o texto a seguir no depurador de script e execute-o (F5). Na janela de depuração, você verá a lista de serviços instalados na máquina local.
Function main
'declara os objetos que precisamos usar
Dim wmi As Object
Dim objswbemobject As Object
'declara outras variáveis necessárias
Dim strComputer As String
Dim cr As String
strComputer = "127.0.0.1"
'Retorno de carro
cr = Chr(13) + Chr(10)
'gancho com o objeto wmi
Set wmi = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
'Verifica se o gancho foi bem-sucedido
If wmi is Nothing Then echo ("error1")
'Retorna a instância de serviços do wmi
Set wmiinst=wmi.instancesof("Win32_Service")
'Verifica se a instância está disponível
If wmiinst is Nothing Then echo ("error2")
'Loop verdadeiro cada instância
For Each objswbemobject In wmiinst
echo(“Nome Serviço= ")
'Exibe serviços
echo(objswbemobject.DisplayName+cr)
Next
End Function
Obs.
Se você tentar usar um objeto de automação sem declaração, o script falhará sem compilar. Como exemplo, pense no mesmo trecho de código, mas faltando a declaração completa da variável do objeto wmi. No momento que tentar executar o script, você receberá uma mensagem de erro, bem como a indicação clara da linha em que o erro aconteceu:
Function main
Dim wmi ‘ALERTA: falta “as object”
Dim objswbemobject As Object
…
…
…
End Function