2. Os contextos de execução do VBSCRIPT
2.1. Introduction
Um programa vbscript não é executado diretamente no Windows, mas em um contêiner que lhe fornece um contexto de execução e um certo número de objetos próprios. Além disso, o programa VBScript pode utilizar objetos disponibilizados pelo sistema Windows, chamados de objetos ActiveX.
![]() |
Neste documento, utilizaremos dois contêineres: o Windows Scripting Host, comumente chamado de WSH, e o navegador Internet Explorer, que, mais adiante, será por vezes chamado de IE. Existem muitos outros. Assim, os aplicativos do MS-Office são contêineres para um derivado do VB chamado VBA (Visual Basic for Applications). Além disso, existem inúmeras aplicações do Windows que permitem aos usuários ultrapassar os limites do sistema, possibilitando o desenvolvimento de programas que são executados dentro da própria aplicação e utilizam os objetos específicos dela.
O contêiner no qual o programa VBScript é executado desempenha um papel fundamental:
- Os objetos disponibilizados ao programa VBScript pelo contêiner variam de um contêiner para outro. Assim, o WSH disponibiliza a um programa VBS um objeto chamado WScript, que dá acesso, por exemplo, aos recursos compartilhados e às impressoras de rede da máquina host. Já o IE disponibiliza ao programa VBS um objeto chamado document, que representa a totalidade do documento HTML visualizado. O programa VBS poderá então operar nesse documento. O Excel, por sua vez, disponibiliza a um programa VBA objetos que representam pastas de trabalho, planilhas, gráficos etc... na verdade, todos os objetos manipulados pelo Excel.
- Embora os objetos de um contêiner proporcionem todo o seu potencial a um programa VBScript, ele pode, às vezes, limitar certas áreas. Assim, um programa VBScript executado no navegador IE não pode acessar o disco do computador host, por motivos de segurança.
Portanto, quando se fala em programação em VBScript, é preciso indicar em qual contêiner o programa é executado.
No Windows, o VBScript não é a única linguagem utilizável nos contêineres WSH ou IE. É possível, por exemplo, usar JScript (=JavaScript), PerlScript (=Perl), Python, etc. Muitas dessas linguagens parecem, à primeira vista, superiores ao VBScript. No entanto, este último possui vantagens significativas:
- O VB e suas variantes VBSCRIPT e VBA são muito comuns em máquinas Windows. Conhecer essa linguagem parece indispensável.
- É mais a variedade de objetos que um programa pode utilizar do que a linguagem em si que determina seu poder. Ora, muitos desses objetos são fornecidos pelos contêineres e não pelas próprias linguagens.
Uma desvantagem do VBSCRIPT é que ele não é portável para sistemas que não sejam o Windows, como o Unix. Seus concorrentes, como JavaScript, Perl e Python, são portáveis. Se for necessário trabalhar em sistemas heterogêneos, pode ser interessante, ou até mesmo indispensável, utilizar a mesma linguagem nos diferentes sistemas.
2.2. O contêiner WSH
O contêiner WSH (Windows Scripting Host) permite a execução, no ambiente do Windows, de programas escritos em diversas linguagens: vbscript, javascript, perlscript, python, etc. Existe um padrão a ser respeitado para que uma linguagem possa ser utilizada no WSH. Qualquer linguagem que respeite essa norma é candidata à execução no WSH. É possível imaginar que a lista anterior de linguagens executáveis no WSH venha a se ampliar. Um contêiner disponibiliza aos programas que executa objetos que lhes conferem seu verdadeiro poder. Isso tende a eliminar as diferenças entre as linguagens, já que todas passam a utilizar o mesmo conjunto de objetos. Utilizar uma linguagem em vez de outra pode, então, tornar-se uma simples questão de preferência, e não de desempenho.
A execução de um programa no WSH é feita por meio de dois executáveis: wscript.exe e cscript.exe. O wscript.exe normalmente se encontra no diretório de instalação do Windows, geralmente chamado de %windir%:
C:\ >echo %windir%
C:\WINDOWS
C:\>dir c:\windows\wscript.exe
WSCRIPT EXE 123 280 19/09/01 11:54 wscript.exe
L'exécutable cscript.exe se trouve lui sous %windir%\command :
C:\>dir c:\windows\cscript.* /s
Répertoire de C:\WINDOWS\COMMAND
CSCRIPT EXE 102 450 26/06/01 17:49 cscript.exe
O “w” de wscript significa windows e o “c” de cscript significa console. Um script pode ser executado tanto pelo wscript quanto pelo cscript. A diferença está na forma como as mensagens são exibidas na tela:
- o wscript as exibe em uma janela
- o cscript as exibe diretamente na tela
Aqui está um script coucou.vbs que exibe coucou na tela:
![]()
Vamos abrir uma janela DOS e executá-lo sucessivamente com wscript e cscript:

DOS>cscript coucou.vbs
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.
coucou
Pode-se observar claramente acima a diferença entre os dois modos. Neste documento, utilizaremos quase exclusivamente o modo de console cscript. Esse é o modo adequado para as chamadas aplicações “em lote”, ou seja, aplicações sem interação do usuário por meio do teclado. Observam-se dois pontos nos resultados anteriores:
- Supusemos que os executáveis wscript.exe e cscript.exe estavam ambos no diretório “PATH” da máquina, o que permite executá-los simplesmente digitando seus nomes. Se não fosse esse o caso, seria necessário escrever aqui:
- Observe-se que a versão do wsh utilizada neste exemplo e no restante do documento é a versão 5.6.
- O arquivo-fonte do script tem a extensão .vbs. Essa é a extensão que designa um script vbscript; um script javascript, por sua vez, é designado pela extensão .js.
O programa cscript possui diversas opções de execução, que podem ser obtidas ao executar o cscript sem argumentos:
O argumento //nologo suprime a exibição do banner do wsh:
2.3. O formato de um script WSH
Acabamos de ver um primeiro script: coucou.vbs
![]()
Indicamos que o sufixo .vbs do arquivo se referia a um script vbscript. Isso não é obrigatório. Poderíamos ter colocado o script em um arquivo com o sufixo .wsf, na seguinte forma mais complexa:

A execução desse script resulta no seguinte:
Um script WSH pode misturar linguagens:

A execução deste script resulta no seguinte:
Destacamos os seguintes pontos:
- O contêiner WSH não está vinculado a uma linguagem. Um script wsh pode misturar linguagens em um arquivo com extensão .wsf
- O script é, então, delimitado pelas tags <job id="..."> ... </job>
- Dentro do aplicativo (=job), as linguagens utilizadas pelas diferentes partes do código são marcadas por <script language="...."> .... </script>
- Essa linguagem de marcação tem um nome: XML, que significa eXtended Markup Language. XML não define nenhuma tag, mas sim regras de disposição das tags. Portanto, neste caso, deveríamos dizer que a linguagem de marcação utilizada em um script WSH segue a norma XML.
Posteriormente, utilizaremos exclusivamente VBScript em arquivos .vbs.
2.4. O objeto WSCRIPT
O contêiner WSH disponibiliza aos scripts que executa um objeto chamado wscript. Um objeto possui propriedades e métodos:
![]() |
Um objeto Obj possui propriedades Pi que definem seu estado. Assim, um objeto thermomètre pode ter uma propriedade température. Essa propriedade é um dos aspectos do estado do termômetro. Outro aspecto poderia ser a temperatura máxima Tmax que ele pode suportar.
O objeto Obj pode possuir métodos Mj que permitem que agentes externos:
- conhecer seu estado
- alterar seu estado
Assim, nosso termômetro, se for eletrônico, poderia ter um método allumer que o ligasse, outro éteindre que o desligasse e outro afficher que exibisse a temperatura de equilíbrio assim que ela fosse atingida. Em termos de programação, um método é uma função que pode receber argumentos e retornar resultados.
Em VBScript, as propriedades Pi de um objeto Obj são denotadas por Obj.Pi e os métodos Mj são denotados por Obj.Mj. O objeto wscript de WSH é um objeto importante pelos métodos que disponibiliza aos scripts. Assim, seu método echo permite exibir uma mensagem. A sintaxe desse método é a seguinte:
Os valores dos argumentos argi são então exibidos em uma janela (execução por wscript) ou na tela (execução por cscript sob DOS).
2.5. O contêiner Internet Explorer
Mencionamos anteriormente que o Internet Explorer pode servir como um contêiner para um script VBScript. Vamos demonstrar isso com um exemplo simples. A seguir, uma página HTML (HyperText Markup Language) chamada coucou2.htm que não contém nenhum script VBScript.
21

Seu carregamento direto pelo Internet Explorer (Fichier/Ouvrir) apresenta os seguintes resultados:
![]() |
O conteúdo do arquivo coucou2.htm nos mostra que HTML é uma linguagem de marcação. Conhecer a linguagem HTML é conhecer essas tags. O objetivo principal delas é indicar ao navegador como exibir um documento. O HTML não segue exatamente a norma XML, mas está próximo dela.
No coucou2.htm, há duas informações a serem exibidas, identificadas como 1 e 2. Nós as exibimos da mesma forma na visualização gerada. Foi a tag <title>...</title> que fez com que a informação 1 fosse colocada na barra de título do navegador, e a tag <body>..</body> que fez com que a informação 2 fosse colocada na área de conteúdo do navegador.
Não nos aprofundaremos mais no estudo da linguagem HTML. Vamos modificar o arquivo coucou2.htm inserindo nele um script VBScript e renomeá-lo agora para coucou1.htm:

O script VBScript foi colocado na tag <head>...</head>. Ele poderia ter sido colocado em outro lugar. Ele exibe “olá” ao carregar a página pela primeira vez. Aqui, o navegador deve ser o Internet Explorer, pois somente esse navegador é, por padrão, um contêiner para scripts VBScript. A exibição obtida é, então, a seguinte:

seguido da exibição normal da página:

O script executado foi o seguinte:
![]()
Enquanto o contêiner WSH disponibilizava ao script um objeto chamado wscript, que permitia realizar exibições com seu método echo, aqui o IE disponibiliza ao script um objeto window, que permite realizar exibições com o método alert. Assim, para exibir “olá”, escreve-se wscript.echo “olá” em WSH e window.alert “olá” em IE. Também é possível demonstrar aqui que, na verdade, é possível utilizar várias linguagens no contêiner IE. Retomamos o exemplo já apresentado em WSH dentro de uma página coucou3.htm:

Ao carregar essa página pelo IE, são exibidas, em primeiro lugar, três janelas de informação:
![]() | ![]() | ![]() |
antes de exibir a página final:

2.6. A ajuda do WSH
WSH vem com um sistema de ajuda localizado normalmente na pasta "C:\Program Files\Microsoft Windows Script\ScriptDocs". Para a versão 5.6 do WSH, o arquivo de ajuda se chama “SCRIPT56.CHM”. Basta clicar duas vezes nesse arquivo para acessar a ajuda. Pode ser prático ter um atalho na área de trabalho.
Depois de aberto, a tela fica mais ou menos assim:

Nele, você encontra a ajuda do contêiner WSH, mas também a ajuda para as linguagens VBScript e JavaScript. É uma ferramenta indispensável tanto para iniciantes quanto para programadores experientes. Existem várias maneiras de trabalhar com essa ajuda:
- não se sabe muito bem o que se está procurando. Quer-se simplesmente descobrir o que está disponível. A aba Sommaire acima pode ser usada nesse caso. Pode-se, por exemplo, verificar o que está disponível para VBScript:

Você encontrará na ajuda do VBscript muitas informações que não constam neste documento.
- Você pode procurar algo específico, por exemplo, como usar a função msgbox do VBscript. Nesse caso, use a guia Rechercher:

A ajuda exibe todos os tópicos relacionados à palavra pesquisada. Geralmente, os primeiros tópicos sugeridos são os mais relevantes. É o caso aqui, em que o primeiro tópico sugerido é o correto. Basta clicar duas vezes nele para acessar as informações desse tópico:






