Você está na página 1de 96

Novatec Editora

www.novateceditora.com.br
Roberto G. A. Veiga
Windows
Script Host
Guia de Consulta Rpida
2
Guia de Consulta Rpida Windows Script Host de
Roberto G. A. Veiga.
Copyright 2000 da Novatec Editora Ltda.
Todos os direitos reservados. proibida a reproduo
desta obra, mesmo parcial, por qualquer processo, sem
prvia autorizao, por escrito, do autor e da Editora.
ISBN: 85-85184-82-5
Novatec Editora Ltda.
Rua Cons. Moreira de Barros 1084 Conj. 01
02018-012 So Paulo - SP Brasil
Tel.: (0xx11) 6959-6529
Fax: (0xx11) 6950-8869
E-mail: novatec@novateceditora.com.br
Site: www.novateceditora.com.br
Marcas registradas
Microsoft, Windows, Windows NT, Active Directory,
ActiveX e Internet Information Server so marcas registradas
da Microsoft Corporation nos Estados Unidos e em outros
pases. Outras marcas so de propriedade de seus respectivos
fabricantes.
3
8umario
Introduo .......................................................................... 5
Por que usar o WSH?................................................... 6
Instalao ..................................................................... 7
Executando um script WSH............................................... 8
Utilizando o WScript ................................................... 8
Utilizando o CScript .................................................... 8
Arquivos .WSH ................................................................. 9
Utilizao de Elementos XML ........................................ 10
Arquivos .WSF .......................................................... 10
Objetos do WSH.............................................................. 16
Objeto Wscript ........................................................... 16
Objeto WshArguments ............................................... 21
Objeto WshShell ........................................................ 22
Objeto WshNetwork .................................................. 31
Objeto WshCollection ............................................... 35
Objeto WshEnvironment ........................................... 36
Objeto WshShortcut ................................................... 38
Objeto WshSpecialFolders ........................................ 40
Objeto WshURLShortcut ........................................... 41
Objeto Dictionary ............................................................ 43
FileSystemObject ............................................................. 46
Objeto Drive .............................................................. 55
Objeto File ................................................................. 58
Objeto Folder ............................................................. 62
Objeto TextStream ..................................................... 68
Recursos Avanados ........................................................ 73
Classes WIN32 .......................................................... 73
ADSI .......................................................................... 74
Scripts de Logon ........................................................ 75
Windows Script Components ..................................... 76
Criptografando Scripts do WSH................................ 77
VBScript .......................................................................... 78
Funes, constantes e objetos do VBScript ............... 86
Objeto Err ................................................................. 87
Objeto RegExp .......................................................... 88
Informaes Adicionais ................................................... 93
4
5
Introduo
O Windows Script Host, ou simplesmente WSH, um
ambiente de scripting para a plataforma Windows de 32 bits
que veio substituir a linguagem batch herdada do MS-DOS.
Permite a desenvolvedores, administradores de sistemas e
consultores de informtica desenvolverem scripts para a
realizao de vrias tarefas dentro do Windows, desde as
mais simples, como exibir texto numa caixa de mensagem,
at as mais complexas, como manipular os objetos do
Active Directory via ADSI.
A principal caracterstica do WSH o fato de ser
independente de linguagem de programao, o que significa
que qualquer linguagem, desde que disponha de um
mecanismo de scripting (interpretador) compatvel com a
tecnologia ActiveX, pode ser utilizada no desenvolvimento
de scripts do WSH. A Microsoft oferece dois mecanismos
de scripting - o do VBScript e o do JavaScript -, mas
possvel encontrar outros mecanismos de scripting para
linguagens populares, como Perl, Tcl ou Python, fornecidos
por outros fabricantes.
Abaixo, um exemplo de script do WSH - o qual utiliza o
VBScript como linguagem de programao - que exibe a
frase Al, mundo! numa caixa de mensagem do Windows:
Exemplo
|em |\|ae a |rase "/|, maace|". |ara |es|a-|e, sa|.e ceme am ara|.e cem
e\|ease ..as e cee|s e\eca|e-e.
wscr||.|c|e "/|, maace|"
Ao executar o arquivo .vbs, ser exibida a seguinte caixa de
mensagem:
Para os programadores ASP, o WSH parecer bem familiar.
De fato, o ASP um ambiente de scripting, ou host, para
o Microsoft Internet Information Server, assim como o
WSH, como dito anteriormente, um ambiente de scripting
para a plataforma Windows. Ambos so compatveis com a
tecnologia ActiveX da Microsoft.
ntroduo
6
Este guia abordar a verso mais recente do WSH, a 2.0, que
traz consigo a verso 5.1 do Windows Script Engine e
acrescenta a possibilidade de utilizao da linguagem XML
no desenvolvimento de scripts.
Muita informao adicional sobre o WSH e outras
tecnologias de scripting da Microsoft pode ser obtida no site
http://msdn.microsoft.com/scripting. esse site que voc
deve acessar em busca de novidades sobre o WSH, incluindo
novas verses e patches de atualizao.
Existem outros sites que tambm oferecem informaes
sobre o WSH. Trs que eu sugiro so:
http://wsh.superexpert.com,
http://www.devguru.com e
http://wsh.glazier.co.nz.
Por que usar o WSH?
Um script WSH pode ser executado tanto a partir do
Windows quanto a partir do prompt da linha de
comando.
WSH independente de linguagem de programao, o
que d ao desenvolvedor de scripts liberdade para
utilizar a sua linguagem favorita, desde que ela suporte
a tecnologia ActiveX da Microsoft.
A partir da verso 2.0 do WSH, possvel utilizar a
XML, inclusive reutilizando antigos arquivos de script
.vbs e .js dentro de um nico arquivo .wsf.
Baixa utilizao de memria do sistema.
Mapeamento automtico de extenses de arquivo, o
que siginifca que o WSH entregar a execuo de
arquivos com extenso .vbs diretamente ao interpretador
VBScript e de arquivos .js ao interpretador JScript.
No preciso nenhum programa especial para gerar
scripts do WSH, pois no so nada alm de arquivos de
texto. O bom e velho Notepad d conta do recado.
ntroduo
7
Instalao
O WSH vem instalado por padro no Windows 98 (verso
1.0) e no Windows 2000 (verso 2.0). No Windows 95 e no
Windows NT ele deve ser instalado como um componente
adicional. O arquivo de instalao, chamado ste51en.exe
para a verso 5.1 em ingls do pacote Windows Script
Engine, pode ser baixado gratuitamente, via download, do
site http://msdn.microsoft.com/scripting.
A instalao do WSH no Windows 95 ou no NT, como a de
qualquer componente extra do Windows, extremamente
rpida e descomplicada. Basta executar o arquivo de
instalao e nenhuma outra ao ser requerida do usurio
que no a de responder SIM quando for solicitado e clicar
no boto OK no final do processo. No Windows 98 e no
2000, a deciso de ter o WSH instalado ou no, pode ser
tomada na instalao do Sistema Operacional, quando
surge a janela Componentes Opcionais. O WSH pode ser
encontrado dentro de Acessrios ao clicar no boto Detalhes.
Posteriormente, o WSH pode ser instalado/desinstalado em
Painel de Controle Adicionar/Remover Programas
Instalao do Windows Acessrios.
poca em que estava escrevendo este guia, a Microsoft
estava liberando a verso 5.5 do Windows Script Engine,
que tambm utiliza a verso 2.0 do WSH mas, por outro
lado, traz melhorias para os mecanismos de scripting do
VBScript e do JScript.
ntroduo
8
Executando um script WSH
Existem duas maneiras de executar um script WSH:
Utilizando o WScript
O WScript.exe permite que os arquivos do WSH sejam
executados a partir do Windows. Para executar um arquivo
do WSH utilizando o WScript.exe, voc pode:
Dar duplo clique no arquivo.
Entrar o caminho completo e o nome do arquivo em
Iniciar Executar e clicar em OK.
Entrar Wscript.exe seguido do caminho completo e do
nome do arquivo em Iniciar Executar e clicar em
OK.
Utilizando o CScript
O CScript.exe, por outro lado, permite que os arquivos do
WSH sejam executados a partir do prompt da linha de
comando. Para usar o CScript, utilize a seguinte sintaxe:
cscript [ opes ] [ script ] [ parmetros ]
Argumento Descrio
opes
//I Habilita o modo interativo.
//B Desabilita o modo interativo; o script executado
em segundo plano.
//T:nn Habilita time-out. O padro nolimit. Quando algum
valor for especificado, o script s poder ser
executado at que ele seja atingido.
//logo Exibe uma mensagem sobre o WSH.
//nologo No exibe a mensagem sobre o WSH.
//H:valor Valor tanto pode ser CScript quanto WScript. Esse
parmetro registra um ou outro como a aplicao
padro para executar scripts. Se omitido,
WScript.exe ser assumido.
//S Salva as atuais configuraes da linha de comando.
//? Mostra a utilizao dos comandos do CScript.exe.
//E:engine Executa o script com o mecanismo de scripting
especificado em engine.
//D Habilita o depurador.
//X Carrega o programa no depurador.
//Job:<JobID> Executa o JobID especificado em um arquivo .wsf.
script Nome do arquivo script.
parmetros Parmetros passados ao script. Devem ser
precedidos por uma barra (/).
Exemplo
|\eca|a e scr|| c|amace "\..as" cem e arme|re "||ae|ee" e |aa||||aace e
cearacer.
C.\~cscr|| ||ae|ee ||0 \..as
Executando um script W8H
9
Arquivos .WSH
Os arquivos .wsh so arquivos de texto onde so armazenadas
configuraes especficas de um script. Ele criado
automaticamente quando so alteradas as propriedades do
script conforme demonstrado abaixo.
Para criar um arquivo .wsh:
1. D um clique com o boto direito do mouse sobre um
arquivo de script.
2. No menu de contexto escolha Propriedades. Abaixo,
a pgina de propriedades do arquivo x.vbs no ambiente
Windows 2000:
3. Altere as configuraes que quiser na pgina de
propriedades.
4. Clique no boto OK.
O contedo do arquivo .wsh criado seria semelhante a este:
'cr|||||e]
|a||=C.\\..as
O||eas]
!|meea|=0
0|s|a,|ee=1
ba|c||ece=0
Quando for executar o arquivo .wsh atravs da linha de
comando, ou da caixa de dilogo Executar, d duplo clique
no arquivo, que o WScript.exe ou o CScript.exe ler o
arquivo em busca das configuraes definidas para o script
ao qual o arquivo .wsh estiver associado e, s ento, o script
ser executado. importante ressaltar que a criao do
arquivo .wsh no elimina a necessidade da existncia do
arquivo de script.
Arquivos .W8H
10
Utilizao de Elementos XML
A eXtensible Markup Language (XML) , em alguns pontos,
semelhante HTML, pois tambm uma linguagem de
formatao de contedo para exibio de documentos,
principalmente na Internet. A grande e fundamental diferena
que a XML no est restrita a tags predefinidas como a
HTML, o que oferece muita flexibilidade ao desenvolvedor.
A XML um padro aberto e de se esperar que sua
utilizao s aumente nos prximos anos.
Se voc no tiver muita familiaridade com a XML,
infelizmente este guia no dever ser o seu ponto de partida.
Sugiro que voc adquira o Guia de Consulta Rpida da
Novatec sobre a XML, ou ento procure informaes na
Internet, em sites como o http://www.microsoft.com/
workshop/xml ou o http://msdn.microsoft.com/xml.
Para poder usar a XML necessrio que haja um analisador
da linguagem instalado na mquina. O Windows Script
Host 2.0 vem com esse analisador. Lembre-se que scripts do
WSH que utilizem a XML devero ter a extenso de arquivo
.wsf.
Arquivos .WSF
Os arquivos .wsf so justamente arquivos de script que
utilizam tags XML e que podem, dentre outras coisas,
executar simultaneamente cdigo em VBScript e em JScript.
Portanto, eles no esto atrelados diretamente a nenhum
mecanismo de scripting e so capazes de utilizar mais de um
ao mesmo tempo, desde que os mecanismos de scripting
sejam compatveis com a tecnologia ActiveX. Abaixo, um
exemplo de arquivo .wsf:
`/|| .ers|ea="1.0' `~
ea~
scr|| |aaaae="1b'cr||"~
|C0/!/
wscr||.|c|e "w|acews 'cr|| Hes| e| aea|e|"
]]~
|scr||~
|ea~
Elementos XML
11
Elementos da XML
Na tabela abaixo esto listados os elementos da linguagem
XML que podero ser usados em scripts do WSH:
Elementos Descrio
<?XML ?> Indica que um arquivo deve ser analisado por um
analisador XML.
<?job ?> Indica se o WSH dever exibir mensagens de erro
durante a execuo do script e se dever acionar o
depurador quando da ocorrncia de um erro
<job> Define um job dentro de um arquivo .wsf.
<object> Cria um objeto.
<package> Permite que mais de um job seja definido dentro de
um arquivo .wsf.
<reference> Usada para incluir uma referncia a uma biblioteca
externa ao script.
<resource> Isola dados dentro de um arquivo de script.
<script> Insere um bloco de cdigo escrito em VBScript ou
JScript dentro de um arquivo .wsf.
<![CDATA[...]]> Evita que o analisador XML falhe ao encontrar
palavras reservadas da linguagem em cdigo de
script escrito em VBScript ou JScript.
<?XML ?>
Indica que um arquivo deve ser analisado por um analisador
XML. Deve ser inserido no incio do arquivo.
<?XML version=verso >
Parmetro Descrio
version Verso da XML sendo executada.
<?job ?>
Especifica atributos para tratamento de erros, informando
ao WSH se deve ou no ser exibida uma mensagem de erro
durante a execuo do script e, caso ocorra algum erro, se
o depurador dever ou no ser acionado.
<?job error=varboolean debug=varboolean ?>
Parmetro Descrio
error Booleano. Habilita (True) ou no (False) a exibio de
mensagens de erro durante a execuo do script.
debug Booleano. Aciona (True) ou no (False) o depurador
quando ocorrer um erro na execuo do script.
Exemplo
`/|| .ers|ea="1.0' `~
ea~
`ea errer="|rae" ceaa="|rae"`~
scr|| |aaaae="1b'cr||"~
w'cr||.|c|e "O|a maace|"
|scr||~
|ea~
Elementos XML
12
<job>
Define um job dentro de um arquivo .wsf. Um job uma
tarefa a ser executada quando o script for chamado.
<job [id=JobID]>
Cdigo a ser executado
</job>
Parmetro Descrio
id Nome pelo qual ser feita referncia ao job dentro do
script e atravs do qual poder ser executado a partir
da linha de comando.
Exemplo
U||||zae ca |a ea ~ ara ce||a|r ma|s ce am > cea|re ce am ara|.e .ws|.
`/|| .ers|ea="1.0' `~
ac|ae~
ea |c="O|a"~
scr|| |aaaae="1b'cr||"~
w'cr||.|c|e "O|a|"
|scr||~
|ea~
ea |c="/ceas"~
scr|| |aaaae="1b'cr||"~
w'cr||.|c|e "/ceas|"
|scr||~
|ea~
|ac|ae~
<object>
Cria um novo objeto dentro do arquivo .wsf. Semelhante
tag de mesmo nome do HTML. A tag object define um
objeto global dentro do cdigo do script, que pode ser
acessado por cdigo escrito em VBScript ou JScript.
<object id=objID [progid=progID |
classid=clsid:GUID] />
Parmetro Descrio
id Nome pelo qual o objeto ser conhecido no script.
progid Nome da classe a partir da qual poder ser definido um
objeto.
classid Cdigo da classe a partir da qual poder ser definido
um objeto.
Exemplo
`/|| .ers|ea="1.0' `~
ea~
eaec| |c="ws|'|e||" re|c="w'cr||.'|e||"|~
scr|| |aaaae="1b'cr||"~
|C0/!/
ws|'|e||.|ea "ws|'|e|| e| am eae|e cec|arace a|ra.es ca |a eaec| ~."
]]~
|scr||~
|ea~
Elementos XML
13
<package>
Permite que haja mltiplos jobs dentro de um mesmo
arquivo .wsf. A utilizao de package opcional quando
h apenas um job no script.
<package>
Jobs
</package>
Exemplo
U||||zae ca |a ac|ae ~ em am ara|.e .ws| cem .ar|es >I.
`/|| .ers|ea="1.0' `~
ac|ae~
ea |c="Um"~
scr|| |aaaae="1b'cr||"~
w'cr||.|c|e "ea Um."
|scr||~
|ea~
ea |c="0e|s"~
scr|| |aaaae="1b'cr||"~
w'cr||.|c|e "ea 0e|s."
|scr||~
|ea~
ea |c="!rs"~
scr|| |aaaae="1b'cr||"~
w'cr||.|c|e "ea !rs."
|scr||~
|ea~
|ac|ae~
<reference>
Esta tag utilizada quando se quer fazer uso de objetos
existentes em uma biblioteca externa ao script.
<reference [object=progID | guid=typelibGUID]
[version=version_info] />
Parmetro Descrio
object Nome da classe a partir da qual um objeto de uma
biblioteca externa pode ser instanciado.
guid O guid da biblioteca qual est sendo feita referncia.
version Verso da biblioteca a qual est sendo feita referncia.
Se nenhum valor for fornecido, ser assumido 1.0.
Exemplo
U||||zae ca |a re|ereace ~ ara acessar e eae|e |ecercse| ce /0O.
`/|| .ers|ea="1.0" `~
ac|ae~
ea~
re|ereace eaec|="/0O0b.|ecercse|"|~
scr|| |aaaae="1b'cr||"~
w'cr||.|c|e "acUseC||ea| = " C'|r(acUseC||ea|)
|scr||~
|ea~
|ac|ae~
Elementos XML
14
<resource>
Armazena dados de texto ou numricos para posterior
utilizao dentro do script.
<resource id=resourceID>
dado
</resource>
Exemplo
U||||zae ca |a researce~ ara armazeaar am .a|er.
`/|| .ers|ea="1.0" `~
ea~
researce |c="measaem"~
w'H e| |ea||
|researce~
scr|| |aaaae="1b'cr||"~
s|r|easaem = e||esearce("measaem")
w'cr||.|c|e s|r|easaem
|scr||~
|ea~
Parmetro Descrio
id Nome pelo qual ser feita referncia ao recurso dentro
do script. Dever ser fornecido como argumento
funo getResource() para que se obtenha o valor dos
dados isolados pela tag.
<script>
Insere um bloco de cdigo dentro do script, especificando
tambm a linguagem que est sendo utilizada. Semelhante
tag de mesmo nome encontrada no HTML.
<script language=linguagem [src=arquivo]>
Cdigo
</script>
Parmetro Descrio
language Especifica a linguagem a ser utilizada. Atualmente so
suportadas as linguagens VBScript e JScript.
src A localizao de um arquivo externo, contendo cdigo
de script, a ser includo no arquivo .wsf.
Elementos XML
15
<![CDATA[...]]>
<![CDATA[...]]> no propriamente uma instruo da
XML. Sua nica funo impedir que o analisador XML
falhe ao analisar um arquivo .wsf que contenha cdigo em
VBScript ou JScript onde se encontrem palavras ou
caracteres reservados da XML.
<![CDATA[
Cdigo
]]>
Exemplos
O e\em|e a sea|r mes|ra e ase ce |C0/!/...]]~ ara |mec|r ae e
aaa||sacer /|| |a||e ae aaa||sar am ara|.e .ws|.
`/|| .ers|ea="1.0' `~
ea~
scr|| |aaaae="1b'cr||"~
|C0/!/
|em o e| am carac|ere reser.ace ca ||aaaem /||
w'cr||.|c|e "O|a " o "|aace|"
]]~
|scr||~
|ea~
Elementos XML
16
Objetos do WSH
Um script do WSH pode fazer uso de qualquer objeto COM
registrado na mquina em que estiver sendo executado,
sendo que ele prprio fornece alguns objetos intrnsecos
que oferecem funcionalidades interessantes. So eles:
Objeto Wscript
O objeto Wscript o principal objeto fornecido pelo WSH.
Atravs dele podem ser instanciados todos os demais objetos
do WSH (WshShell, WshNetwork, WshShortcut, etc.)
utilizando o mtodo CreateObject(). Alm disso, o objeto
Wscript fornece mtodos e propriedades relacionados ao
prprio script.
Palavra-Chave
ProgID N/A.
CLSID 60254CA2-953b-11CF-8C96-00AA00B8708C.
Propriedades
Application Fornece a interface IDispatch para o objeto
Wscript.
Arguments Argumentos passados na linha de comando.
BuildVersion Retorna a build version do arquivo executvel
do WSH.
FullName Caminho completo para o executvel WSH.
Interactive Se True, o script ser executado em modo
interativo, caso False, o script ser executado
em segundo plano.
Name Nome amigvel do objeto Wscript (propriedade
padro).
Path Nome da pasta onde reside o executvel do
WSH.
ScriptFullName Caminho completo para o script que est sendo
executado pelo WSH.
ScriptName Nome do arquivo de script que est sendo
executado pelo WSH.
StdErr Retorna o fluxo de erro padro.
StdIn Retorna o fluxo de entrada padro.
StdOut Retorna o fluxo de sada padro.
TimeOut Especifica o tempo mximo em que o script
poder ser executado.
Version Uma string contendo a verso do WSH.
Mtodos
CreateObject Cria e estabelece uma conexo com um objeto.
DisconnectObject Disconecta um objeto previamente conectado.
Echo Exibe uma caixa de mensagem.
GetObject Retorna um objeto de automao de arquivo.
Quit Termina a execuo do script com um cdigo de
erro especfico.
Sleep Interrompe a execuo do script durante um
perodo de tempo determinado.
Objetos do W8H
17
Propriedades do objeto Wscript
Application
Fornece a interface IDispatch para o objeto Wscript.
Utilizado para se fazer referncia a uma instncia do
objeto Wscript.
Set objWscript = Wscript.Application
Arguments
Fornece uma coleo de objetos WshArguments; permite
recuperar argumentos passados para um script do WSH.
Set objArgs = Wscript.Arguments
Exemplo
|em |\|ae |eces es aramea|es ca ||a|a ce cemaace.
'e| ea/rs = wscr||./ramea|s
|er | = 0 |e ea/rs.Ceaa| - 1
wscr||.|c|e ea/rs(|)
Ne\|
BuildVersion
Retorna a build version do arquivo executvel do WSH
(cscript.exe ou wscript.exe) utilizado para executar o script.
lngBuildVersion = Wscript.BuildVersion
Exemplo
|em |\|ae a "aa||c .ers|ea" ce ara|.e wscr||.e\e.
|aba||c1ers|ea = wscr||.ba||c1ers|ea
wscr||.|c|e |aba||c1ers|ea
FullName
Fornece uma string contendo o caminho completo para o
executvel do WSH.
strFullName = Wscript.FullName
Exemplo
|em |\|ae e cam|a|e cem|e|e ara e wscr||.e\e.
s|r|a||Name = wscr||.|a||Name
wscr||.|c|e s|r|a||Name
Interactive
Especifica se o script ser executado em modo interativo
(True), permitindo interao com o usurio, ou em segundo
plano (False). Em segundo plano, mtodos como Echo,
InputBox ou MsgBox no funcionaro.
Wscript.Interactive = True|False
Exemplo
|em |\|a|ra a |rase "|ece |a|era||.e" aama ca|\a ce measaem, e|s a
rer|ecace |a|erac||.e |e| ce||a|ca ceme !rae.
wscr||.|a|erac||.e = !rae
wscr||.|c|e "|ece |a|era||.e"
Objetos do W8H
18
Name
Fornece uma string contendo o nome amigvel do objeto
WScript. Essa a propriedade padro.
strName = Wscript.Name
Exemplo
|em |\|ae e aeme am|a.e| ce eae|e wscr||.
s|rName = wscr||.Name
wscr||.|c|e s|rName
Path
Fornece uma string contendo o nome da pasta onde o
executvel do WSH reside.
strPath = Wscript.Path
Exemplo
s|r|a|| = wscr||.|a||
wscr||.|c|e s|r|a||
ScriptFullName
Fornece o caminho completo para o script que est sendo
executado pelo WSH.
strScriptFullName = Wscript.ScriptFullName
Exemplo
s|r'cr|||a||Name = wscr||.'cr|||a||Name
wscr||.|c|e s|r'cr|||a||Name
ScriptName
Fornece o nome do arquivo de script que est sendo
executado pelo WSH.
strScriptName = Wscript.ScriptName
Exemplo
|em |\|ae e aeme ce scr||.
s|r'cr||Name = wscr||.'cr||Name
wscr||.|c|e s|r'cr||Name
StdErr
Retorna um objeto TextStream, que permite escrever no
fluxo de erro padro. Pode ser utilizado apenas quando o
executvel do WSH o cscript.exe.
Set objStdErr = Wscript.StdErr
StdIn
Retorna um objeto TextStream, que permite ler texto a
partir do fluxo de entrada padro. Pode ser utilizado
apenas quando o executvel do WSH o cscript.exe.
Set objStdIn = Wscript.StdIn
Objetos do W8H
19
StdErr
Retorna um objeto TextStream, que permite escrever no
fluxo de sada padro. Pode ser utilizado apenas quando
o executvel do WSH o cscript.exe.
Set objStdOut = Wscript.StdOut
TimeOut
Especifica o tempo mximo (em segundos) que um script
ter para ser executado. Quando esse limite de tempo for
atingido, o script suspender automaticamente sua
execuo.
Wscript.TimeOut = lngSegundos
Version
Fornece uma string com a verso do Windows Script que
est sendo executado.
strVerso = Wscript.Version
Mtodos do objeto Wscript
ConnectObject
Relaciona um evento de um objeto a uma rotina dentro do
script que ser executada quando da ocorrncia desse
evento.
Wscript.ConnectObject obj [,prefixo])
Parmetro Descrio
obj Nome do objeto, definido previamente pela utilizao
do mtodo CreateObject().
prefixo Prefixo que, concatenado ao caractere _ e ao nome
do evento gerado pelo objeto, forma o nome de um
procedimento dentro do script que ser chamado
quando o evento ocorrer.
Exemplo
|em Cr|a ama |as|ac|a ce eae|e |eaOae|e e re|ac|eaa e e.ea|e Oabe|a a
re||aa |.ea|e_Oabe|a.
'e| ea = wscr||.Crea|eOaec|("|eaOae|e")
wscr||.Ceaaec|Oaec| ea, "|.ea|e"
'aa |.ea|e_Oabe|a
wscr||.|c|e "Um eae|e |eaOae|e |e| |a|c|a||zace|"
|ac 'aa
CreateObject
Define um objeto e estabelece uma conexo com ele.
Muitos objetos (como o WshShell, o WshNetwork, etc.)
dependem diretamente da sua utilizao para serem
instanciados. Substitui a tag <object> da XML.
Set obj = Wscript.CreateObject(progID [,prefixo])
Objetos do W8H
20
Parmetro Descrio
progID Tipo do objeto a ser definido.
prefixo Chama um procedimento dentro do script cujo nome
formado por prefixo mais o caractere _, mais o nome
de um evento gerado pelo objeto.
Exemplos
|em Cr|aace am eae|e c|amace ws|'|e||.
0|m ws|'|e||
'e| ws|'|e|| = wscr||.Crea|eOaec|("wscr||.'|e||")
DisconnectObject
Disconecta um objeto previamente conectado.
Wscript.DisconnectObject obj
Echo
Exibe uma caixa de mensagem informativa na tela.
Wscript.Echo msg
Exemplo
|em |\|ae ama ca|\a ce measaem cem es c|zeres "w'H e aea|e|".
wscr||.|c|e "w'H e aea|e|"
GetObject
Retorna um objeto de automao de um arquivo. Pode ser
usado para ler, alterar ou inserir dados em arquivos que
aceitem a automao OLE, tais como documentos do
Word, planilhas do Excel ou bancos de dados do Access.
Nestes casos, o mtodo GetObject() primeiro chama o
aplicativo associado ao formato do arquivo.
Set obj = GetObject(arquivo, [, progID][, prefixo])
Parmetro Descrio
arquivo Arquivo de onde ser retornado o objeto de automao.
progID String contendo o tipo do objeto a ser retornado.
prefix Semelhante ao parmetro de mesmo nome do mtodo
CreateObject().
Exemplo
|em /are am ara|.e ce ||crese|| |\ce| c|amace e\em|e.\|s.
c|m ea
'e| ea = e|Oaec|("C.\e\em|e.\|s")
Quit
Encerra a execuo do script com o cdigo de erro
correspondente.
Wscript.Quit [intCodigoDeErro]
Parmetro Descrio
intCodigoDeErro Valor ser retornado no final da execuo do
processo. Caso omitido, Quit retornar 0.
Objetos do W8H
21
Sleep
Interrompe a execuo do script durante um determinado
perodo de tempo.
Wscript.Sleep perodo
Parmetro Descrio
perodo Perodo de tempo (em milissegundos) em que a
execuo do script estar suspensa.
Exemplo
|em / e\ecae ce scr|| sera saseasa er cez seaaces.
wscr||.|c|e "'cr|| |a|c|a||zace|"
wscr||.'|ee 10000
wscr||.|c|e "'cr|| ||aa||zace|"
Objeto WshArguments
O objeto WshArguments retorna uma coleo contendo
todos os argumentos passados para um script do WSH. No
explicitamente acessado, sendo instanciado quando se faz
uso da propriedade Arguments dos objetos Wscript ou
WshShortcut.
Palavra-Chave
ProgID N/A.
CLSID 60254CA4-953b-11CF-8C96-00AA00B8708C.
Propriedades
Item Matriz contendo os argumentos passados na linha
de comando para o script.
Count Nmero de argumentos da linha de comando.
lenght Nmero de argumentos da linha de comando
(JScript).
Propriedades do objeto WshArguments
Item
A propriedade Item a propriedade padro do objeto
WshArguments. uma matriz que contm os argumentos
passados na linha de comando para o script, indexados a
partir de 0 (ou seja, o primeiro item tem ndice 0, o
segundo tem ndice 1 e assim por diante).
Set objArgs = Wscript.Arguments
strArgs = objArgs(ndice)
Exemplo
|em |ecaera e seaace aramea|e assace ara e scr|| aa ||a|a ce cemaace.
'e| ea/rs = wscr||./ramea|s
s|r/rs = ea/rs(1)
wscr||.|c|e s|r/rs
Objetos do W8H
22
Count
Retorna o nmero de argumentos passados para o script na
linha de comando.
Set objArgs = Wscript.Arguments
intArgs = objArgs.Count
lenght
A propriedade lenght em tudo semelhante propriedade
Count. Usada para efeitos de compatibilidade com a
linguagem JScript.
Objeto WshShell
O objeto WshShell permite que os scripts do WSH interajam
diretamente com o sistema operacional.
Palavra-Chave
ProgID Wscript.Shell.
CLSID F935DC22-1CF0-11d0-ADB9-00C04FD58A0B.
Propriedades
Environment Retorna um objeto WshEnvironment.
SpecialFolders Fornece acesso s pastas especiais do Windows.
Mtodos
AppActivate Ativa a janela de um aplicativo.
CreateShortcut Cria e retorna um objeto WshShortcut ou
WshURLShortcut.
ExpandEnvironmentStrings
Expande uma varivel de ambiente do tipo
PROCESS e retorna a string correspondente.
LogEvent Salva informaes no log do Windows NT ou no
arquivo WSH.log.
Popup Exibe uma caixa de mensagem.
RegDelete Exclui uma chave ou valor do registro do Windows.
RegRead L uma chave ou valor do registro do Windows.
RegWrite Escreve chaves ou valores no registro do Windows.
Run Cria um novo processo que executa um programa
do DOS ou do Windows.
SendKeys Envia uma tecla ou conjunto de teclas para o
sistema operacional.
Objetos do W8H
23
Propriedades do objeto WshShell
Environment
Retorna um objeto WshEnvironment. O tipo do objeto
retornado, no ambiente NT, pode ser SYSTEM, USER,
VOLATILE ou PROCESS. No ambiente Windows 9x,
apenas o tipo PROCESS suportado.
Set WshShell = Wscript.CreateObject(Wscript.Shell)
Set objEnvironment = WshShell.Environment([strTipo])
strVar = objEnvironment(strVariavelDoAmbiente)
Parmetro Descrio
strTipo Tipo do objeto retornado. Pode ser SYSTEM, USER,
VOLATILE ou PROCESS no Windows NT e apenas
PROCESS no Windows 9x. Retornar SYSTEM no
Windows NT e PROCESS no Windows 9x, caso no
tenha sido especificado.
As principais variveis de ambiente so:
Nome Significado
NUMBER_OF_PROCESSORS
Nmero de processadores.
PROCESSOR_ARCHITECTURE
Tipo do processador.
PROCESSOR_IDENTIFIER
ID do processador da mquina.
PROCESSOR_LEVEL
Nvel do processador da mquina.
PROCESSOR_REVISION
Verso do processador.
OS Sistema operacional.
COMSPEC Executvel para a linha de comando.
HOMEDRIVE Drive local primrio; na maioria das vezes C:\.
HOMEPATH Diretrio padro para os usurios.
PATH Varivel PATH (a mesma encontrada no arquivo
Autoexec.bat).
PATHEXT Extenses de arquivos executveis (.com, .exe,
.bat, etc.).
PROMPT Prompt da linha de comando.
SYSTEMDRIVE Drive local onde se encontra a pasta do sistema.
SYSTEMROOT Pasta do sistema.
WINDIR Semelhante a SYSTEMROOT.
TMP Pasta onde so armazenados os arquivos
temporrios.
TEMP Semelhante a TMP.
Exemplo
|em Oa|em e aeme ce '|s|ema Oerac|eaa|.
'e| ws|'|e|| = wscr||.Crea|eOaec|("wscr||.'|e||")
'e| ea|a.|reamea| = ws|'|e||.|a.|reamea|("'\'!||")
s|r1ar = ea|a.|reamea|("O'")
wscr||.|c|e s|r1ar
Objetos do W8H
24
SpecialFolders
Fornece um objeto, o WshSpecialFolders, atravs do qual
possvel obter-se a localizao de pastas especiais do
Windows, como a pasta Desktop, por exemplo.
Set WshShell = Wscript.CreateObject(Wscript.Shell)
strVar = WshShell.SpecialFolders(strNomeDaPasta)
Parmetro Descrio
strNomeDaPasta Nome de uma das pastas especiais do Windows.
Pastas Especiais do Windows:
AllUsersDesktop
AllUsersStartMenu
AllUsersPrograms
AllUsersStartup
Desktop
Favorites
Fonts
MyDocuments
NetHood
PrintHood
Programs
Recent
SentTo
StartMenu
Startup
Templates
Exemplo
|em |e|eraa e cam|a|e cem|e|e ara a as|a |eas 0ecamea|es ce asaar|e a|aa|.
'e| ws|'|e|| = wscr||.Crea|eOaec|("wscr||.'|e||")
s|r1ar = ws|'|e||.'ec|a||e|cers("|,0ecamea|s")
wscr||.|c|e s|r1ar
Mtodos do objeto WshShell
AppActivate
Ativa a janela de um aplicativo em execuo.
Set WshShell = Wscript.CreateObject(Wscript.Shell)
WshShell.AppActivate strTtulo
Parmetro Descrio
strTtulo Nome que aparece na barra de ttulo do aplicativo
sendo executado.
Exemplo
|em |scre.e "O|a |aace|" ae Ne|eac.
'e| ws|'|e|| = Crea|eOaec|("w'cr||.'|e||")
ws|'|e||.|aa "ae|eac"
w'cr||.'|ee 200
ws|'|e||.//c||.a|e "Ne|eac"
w'cr||.'|ee 200
ws|'|e||.'eacKe,s "O|a |aace|"
w'cr||.'|ee 2000
Objetos do W8H
25
CreateShortcut
Retorna dois tipos de objeto: um objeto WshShortcut para
um atalho comum ou um objeto WshURLShortcut para
um atalho que aponta para uma URL.
Set WshShell = Wscript.CreateObject(Wscript.Shell)
Set objShortcut =
WshShell.CreateShortcut(strNomeDoAtalho)
Parmetro Descrio
strNomeDoAtalho Nome do atalho a ser criado na rea de trabalho
do usurio ou em outra localizao. Se a
extenso for .lnk, ser criado um objeto
WshShortcut. Se for .url, ser criado um objeto
WshURLShortcut.
ExpandEnvironmentStrings
Expande uma varivel de ambiente do tipo PROCESS.
Set WshShell = Wscript.CreateObject(Wscript.Shell)
strVar = WshShell.ExpandEnvironmentStrings(string)
Parmetro Descrio
string Uma string representando uma varivel de ambiente
contida entre dois caracteres de percentagem (%).
Exemplo
|em |\|ae e aeme ce s|s|ema eerac|eaa|.
'e| ws|'|e|| = wscr||.Crea|eOaec|("wscr||.'|e||")
s|r1ar = ws|'|e||.|\aac|a.|reamea|'|r|as("O'")
wscr||.|c|e s|r1ar
LogEvent
Salva informaes no log do Windows NT ou no arquivo
WSH.log (quando o script for executado no Windows 9x).
Set WshShell = Wscript.CreateObject(Wscript.Shell)
WshShell.LogEvent intTipo, strMsg [,strAlvo]
Parmetro Descrio
intTipo Um inteiro representando o tipo (status) do evento
ocorrido.
0 SUCESS
1 ERROR
2 WARNING
4 INFORMATION
8 AUDIT_SUCESS
16 AUDIT_FAILURE
strMsg Uma mensagem descrevendo o evento ocorrido.
strAlvo Nome do sistema onde o evento ser salvo. Se nenhum
valor for especificado, o WSH assumir o sistema
local. Vlido apenas para o Windows NT.
Objetos do W8H
26
Popup
Mostra uma caixa de mensagem na tela do computador.
Bastante semelhante funo MsgBox do VBscript.
Set WshShell = Wscript.CreateObject(Wscript.Shell)
intBoto = WshShell.Popup(strMsg [,intSegundos]
[,strTtulo] [,intTipo] )
Parmetro Descrio
strMsg Mensagem a ser apresentada na caixa de mensagem.
intSegundos Tempo em que a caixa de mensagem ficar na tela
antes de ser automaticamente fechada.
strTtulo Texto da barra de ttulo da caixa de mensagem. Se
omitido, ser exibido Windows Script Host.
intTipo Valor obtido pela combinao (soma) dos valores de
constantes referentes aos tipos de botes e de cones
e que determinam a aparncia da caixa de mensagem.
Botes
0 Boto OK.
1 Botes OK e Cancelar.
2 Botes Abortar, Repetir e Ignorar.
3 Botes Sim, No e Cancelar.
4 Botes Sim e No.
5 Botes Repetir e Cancelar.
cones
16 Exibe um X dentro de um crculo vermelho. Significa
a ocorrncia de um erro.
32 Exibe um ponto de interrogao. Normalmente usado
para perguntas.
48 Exibe um ponto de exclamao. Normalmente usado
para advertncias.
64 Exibe a letra I. Usado quando a caixa de mensagem
traz informaes para o usurio.
O mtodo Popup sempre retorna um inteiro, representando
o boto que foi clicado. Abaixo, uma lista dos valores que
podem ser retornados pelo mtodo:
Valores Botes
1 OK.
2 Cancelar.
3 Abortar.
4 Repetir.
5 Ignorar.
6 Sim.
7 No.
Objetos do W8H
27
RegDelete
Exclui uma chave ou valor do registro do Windows.
Set WshShell = Wscript.CreateObject(Wscript.Shell)
WshShell.RegDelete strVar
Parmetro Descrio
strVar O valor ou chave do registro a ser excludo. O mtodo
RegDelete entende que se o parmetro passado
terminar com um caractere \, dever excluir uma
chave, caso contrrio excluir um valor.
Exemplo
|em |\c|a| e .a|er \ ca c|a.e / e cee|s a rer|a c|a.e / ce
HK|\_|OC/|_|/CH|N|\'e||ware.
'e| ws|'|e|| = wscr||.Crea|eOaec|("wscr||.'|e||")
ws|'|e||.|e0e|e|e "HK||\'e||ware\/\\"
ws|'|e||.|e0e|e|e "HK||\'e||ware\/\"
Abaixo, as denominaes abreviadas e completas das chaves-
raiz do registro do Windows:
Abreviao Chaves-Raiz
HKCU HKEY_CURRENT_USER.
HKLM HKEY_LOCAL_MACHINE.
HKCR HKEY_CLASSES_ROOT.
HKEY_USERS
HKEY_CURRENT_CONFIG
Esses valores das chaves-raiz servem tambm para os
mtodos RegRead e RegWrite, que veremos logo a seguir.
RegRead
L dados de uma chave ou valor do registro do Windows.
Tem uma limitao: s capaz de ler dados dos tipos
REG_SZ, REG_EXPAND_SZ, REG_DWORD,
REG_BINARY e REG_MULTI_SZ. Se for outro o tipo
do dado a ser lido, RegRead retornar
DISP_E_TYPEMISMATCH.
Set WshShell = Wscript.CreateObject(Wscript.Shell)
WshShell.RegRead strVar
Parmetro Descrio
strVar O valor ou chave do registro a ser lido. O mtodo
RegRead entende que se o parmetro passado terminar
com um caractere \, dever ler o dado de uma chave,
caso contrrio ler um valor.
Exemplo
|em | e .a|er \ ca c|a.e / e cee|s | a rer|a c|a.e / ce
HK|\_|OC/|_|/CH|N|\'e||ware.
'e| ws|'|e|| = wscr||.Crea|eOaec|("wscr||.'|e||")
ws|'|e||.|e|eac "HK||\'e||ware\/\\"
ws|'|e||.|e|eac "HK||\'e||ware\/\"
Objetos do W8H
28
RegWrite
Com o mtodo RegWrite, possvel para um script do WSH
escrever dados em chaves ou valores do registro.
Set WshShell = Wscript.CreateObject(Wscript.Shell)
WshShell.RegWrite strVar, strDado [,strTipo]
Parmetro Descrio
strVar O valor ou chave do registro onde se vai escrever um
dado. O mtodo RegWrite, como os anteriores, entende
que se o parmetro passado terminar com um caractere
\, dever escrever em uma chave, caso contrrio ir
escrever um valor.
strDado Dado a ser escrito.
strTipo Tipo do dado a ser escrito. Pode ser REG_SZ,
REG_EXPAND_SZ, REG_DWORD e REG_BINARY.
Se tentar uti l i zar outro ti po, ser retornado
E_INVALIDARG.
Exemplo
|em |scre.e "w'H" ae .a|er \ ca c|a.e / e cee|s aa rer|a c|a.e / ce
HK|\_|OC/|_|/CH|N|\'e||ware.
'e| ws|'|e|| = wscr||.Crea|eOaec|("wscr||.'|e||")
ws|'|e||.|ewr||e "HK||\'e||ware\/\\", "w'H"
ws|'|e||.|ewr||e "HK||\'e||ware\/\", "w'H"
Run
Cria um novo processo que executa um arquivo executvel
(.exe, .com, .bat, etc.).
Set WshShell = Wscript.CreateObject(Wscript.Shell)
WshShell.Run strComando [,intEstiloDeJanela]
[,strAguardaRetorno]
Parmetro Descrio
strComando Caminho para o executvel.
intEstiloDeJanela Estilo da janela do executvel durante sua execuo
pelo script.
0 Esconde a janela e ativa uma outra janela.
1 Ativa e exibe uma janela. Se a janela for minimizada
ou maximizada, o sistema restaurar seu tamanho
e posio originais. Uma aplicao deve utilizar
essa opo quando estiver exibindo uma janela
pela primeira vez.
2 Exibe a janela minimizada.
3 Exibe a janela maximizada.
4 Exibe a janela em sua posio e tamanho mais
recentemente definidos.
5 Exibe a janela em sua posio e tamanho atuais.
6 Minimiza a janela especificada e ativa a prxima
janela.
Objetos do W8H
29
7 Exibe a janela minimizada, mantendo-a como janela
ativa.
8 Exibe a janela em seu estado atual, mantendo-a
como janela ativa.
9 Ativa e exibe uma janela. Se a janela for minimizada
ou maximizada, o sistema restaurar seu tamanho
e posio originais. Uma aplicao deve utilizar
essa opo quando estiver restaurando uma janela
minimizada.
10 Configura a exibio da janela de acordo com o
programa que iniciou a aplicao.
strAguardaRetorno Se no especi fi cado ou Fal se, retornar
imediatamente ao script com um cdigo de erro
zero. Caso True, retornar qualquer cdigo de erro
da aplicao que estiver sendo executada.
Exemplo
|em |a|c|a e Ne|eac.
'e| ws|'|e|| = wscr||.Crea|eOaec|("w'cr||.'|e||")
ws|'|e||.|aa "ae|eac"
SendKeys
Envia um caractere ou uma seqncia de caracteres (string)
para o Windows, como se as teclas tivessem sido
pressionadas no teclado.
Set WshShell = Wscript.CreateObject(Wscript.Shell)
WshShell.SendKeys string
Parmetro Descrio
string Caractere ou seqncia de caracteres que devem ser
enviados para o Windows. Para repetir uma seqncia
vrias vezes, utilize a forma {string nmero de
repeties}. Por exemplo, {R 10} enviaria o caractere
R dez vezes.
Alguns caracteres especiais, como a tecla de espao ou a
tecla Enter, por exemplo, que no so exibidos quando
suas teclas correspondentes so pressionadas, necessitam
de uma maneira especial para poderem ser utilizados pelo
mtodo SendKeys. Essa forma especial, na maioria dos
casos, consiste em colocar o cdigo delas entre chaves
({}).
Caracteres Especiais Cdigo
BACKSPACE {BACKSPACE}, {BS} ou {BKSP}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK}
DELETE {DELETE} ou {DEL}
END {END}
ENTER {ENTER} ou ~
ESC {ESC}
HELP {HELP}
HOME {HOME}
Objetos do W8H
30
INSERT {INSERT} ou {INS}
NUM LOCK {NUMLOCK}
PAGE DOWN {PGDN}
PAGE UP {PGUP}
PRINT SCREEN {PRTSC}
SCROLL LOCK {SCROLLLOCK}
SETA P/ BAIXO {DOWN}
SETA P/ DIREITA {RIGHT}
SETA P/ ESQUERDA {LEFT}
SETA P/ CIMA {UP}
TAB {TAB}
F1 {F1}
F2 {F2}
F3 {F3}
F4 {F4}
F5 {F5}
F6 {F6}
F7 {F7}
F8 {F8}
F9 {F9}
F10 {F10}
F11 {F11}
F12 {F12}
SHIFT +
CTRL ^
ALT %
Os caracteres de soma (+), percentagem (%), acento
circunflexo (^), parnteses (( )) e til (~) tambm precisam
estar entre chaves para poderem ser utilizados pelo mtodo
SendKeys.
Exemplo
|em |scre.e "O|a |aace|" ae Ne|eac.
'e| ws|'|e|| = Crea|eOaec|("w'cr||.'|e||")
ws|'|e||.|aa "ae|eac"
w'cr||.'|ee 200
ws|'|e||.//c||.a|e "Ne|eac"
w'cr||.'|ee 200
ws|'|e||.'eacKe,s "O|a |aace|"
w'cr||.'|ee 2000
Objetos do W8H
31
Objeto WshNetwork
O objeto WshNetwork permite aos scripts do WSH acessarem
os recursos de rede do Windows.
Palavra-Chave
ProgID Wscript.Network.
CLSID F935DC26-1CF0-11d0-ADB9-00C04FD58A0B.
Propriedades
ComputerName Uma string contendo o nome do computador.
UserDomain Uma string contendo o nome do domnio do
usurio.
UserName Uma string contendo o nome do usurio.
Mtodos
AddPrinterConnection Mapeia uma impressora remota para um
nome de recurso local.
AddWindowsPrinterConnection
Adiciona uma conexo de impressora ao
Windows.
EnumNetworkDrives Enumera os drives de rede atualmente
mapeados.
EnumPrinterConnections Enumera os mapeamentos de
impressoras de rede atuais.
MapNetworkDrive Mapeia um compartilhamento com um
recurso local.
RemoveNetworkDrive Remove um mapeamento de rede.
RemovePrinterConnectionRemove um mapeamento para uma
impressora.
SetDefaultPrinter Determina uma impressora como sendo
a impressora padro.
Propriedades do objeto WshNetwork
ComputerName
Fornece uma string contendo o nome do computador onde
o script est sendo executado.
Set WshNetwork =
Wscript.CreateObject(Wscript.Network)
strNomeComputador = WshNetwork.ComputerName
Exemplo
|em Oa|em e aeme ce cema|acer.
'e| ws|Ne|wer| = wscr||.Crea|eOaec|("wscr||.Ne|wer|")
s|rCema|erName = ws|Ne|wer|.Cema|erName
wscr||.|c|e s|rCema|erName
Objetos do W8H
32
UserDomain
Fornece uma string contendo o nome do domnio onde
est definida a conta do usurio atualmente conectado.
Set WshNetwork =
Wscript.CreateObject(Wscript.Network)
strUserDomain = WshNetwork.UserDomain
Exemplo
|em Oa|em e aeme ce cem|a|e.
'e| ws|Ne|wer| = wscr||.Crea|eOaec|("wscr||.Ne|wer|")
s|rUser0ema|a = ws|Ne|wer|.User0ema|a
wscr||.|c|e s|rUser0ema|a
UserName
Fornece uma string contendo o nome do usurio atualmente
conectado mquina.
Set WshNetwork =
Wscript.CreateObject(Wscript.Network)
strUserName = WshNetwork.UserName
Exemplo
|em Oa|em e aeme ce asaar|e a|aa|.
'e| ws|Ne|wer| = wscr||.Crea|eOaec|("wscr||.Ne|wer|")
s|rUserName = ws|Ne|wer|.UserName
wscr||.|c|e s|rUserName
Mtodos do objeto WshNetwork
AddPrinterConnection
Mapeia uma impressora remota para um recurso local do
tipo LPT1:.
Set WshNetwork =
Wscript.CreateObject(Wscript.Network)
WshNetwork.AddPrinterConnection strRecursoLocal,
strImpressoraRemota
Parmetro Descrio
strRecursoLocal Nome do recurso local para o qual ser mapeada
a impressora. Exemplo: LPT1:.
strImpressoraRemota Caminho para a impressora remota, do tipo
\\nomedoservidor\nomedaimpressoracompartilhada.
Exemplo
|em |ae|a a |mressera \ ae ser.|cer / ara e recarse |eca| ||!?.
'e| ws|Ne|wer| = wscr||.Crea|eOaec|("wscr||.Ne|wer|")
ws|Ne|wer|./cc|r|a|erCeaaec||ea "||!?.", "\\/\\"
Objetos do W8H
33
AddWindowsPrinterConnection
Adiciona uma conexo de impressora ao Windows.
Set WshNetwork =
Wscript.CreateObject(Wscript.Network)
WshNetwork.AddWindowsPrinterConnection
strImpressora, strDriver [,strPortaDeImpressora]
Parmetro Descrio
strImpressora Caminho para a impressora remota, do tipo
\\nomedoservidor\nomedaimpressoracompartilhada.
strDriver Driver utilizado pela impressora. S poder ser
usado quando o script for executado no Windows
9x. No Windows NT/2000 ser ignorado pelo
WSH.
strPortaDeImpressoraPorta a ser utilizada pela impressora. A porta
padro a LPT1:. Tambm s pode ser utilizado
no Windows 9x, sendo ignorado no Windows
NT/2000.
Exemplo
|em /c|c|eaa a |mressera \ |eca||zaca ae ser.|cer / ae w|acews.
'e| ws|Ne|wer| = wscr||.Crea|eOaec|("wscr||.Ne|wer|")
ws|Ne|wer|../ccw|acews|r|a|erCeaaec||ea "\\/\\"
EnumNetworkDrives
Enumera todos os mapeamentos de rede da mquina em
uma matriz, instanciando um objeto WshCollection.
Set WshNetwork =
Wscript.CreateObject(Wscript.Network)
Set objDrives = WshNetwork.EnumNetworkDrives
EnumPrinterConnections
Enumera os mapeamentos de impressoras da mquina em
uma matriz, instanciando um objeto WshCollection.
Set WshNetwork =
Wscript.CreateObject(Wscript.Network)
Set objImpressoras =
WshNetwork.EnumPrinterConnections
MapNetworkDrive
Mapeia um compartilhamento em um servidor remoto
para um recurso local, por exemplo, D:.
Set WshNetwork =
Wscript.CreateObject(Wscript.Network)
WshNetwork.MapNetworkDrive strRecursoLocal,
strCompartilhamento [,fAtualizaPerfil] [,strUsurio]
[,strSenha]
Objetos do W8H
34
Parmetro Descrio
strRecursoLocal Recurso local (unidade de disco de rede) para
o qual o compartilhamento ser mapeado.
strCompartilhamento Nome do comparti l hamento, do ti po
\\nomedoservidor\pastacompartilhada, a ser
mapeado.
fAtualizaPerfil Se True, salva o mapeamento no perfil do usurio.
strUsurio Nome do usurio que se quer utilizar para fazer
o mapeamento (caso no seja o usurio
atualmente conectado).
strSenha Senha do usurio que se quer utilizar para fazer
o mapeamento (caso no seja o usurio
atualmente conectado).
Exemplo
|em |az e maeamea|e ce cemar||||amea|e \ ae ser.|cer / ara a aa|cace ce
c|sce ce rece "/.".
'e| ws|Ne|wer| = wscr||.Crea|eOaec|("wscr||.Ne|wer|")
ws|Ne|wer|.|aNe|wer|0r|.e "/.", "\\/\\"
RemoveNetworkDrive
Remove um mapeamento.
Set WshNetwork =
Wscript.CreateObject(Wscript.Network)
WshNetwork.RemoveNetworkDrive strUnidadeDeDisco
[,fForado]
Parmetro Descrio
strUnidadeDeDisco Unidade de disco de rede utilizada pelo
mapeamento que se pretende desfazer.
fForado Se True, desfaz o mapeamento independentemente
dele estar ou no sendo utilizado no momento.
Exemplo
|em 0es|az e maeamea|e ce rece ce e\em|e aa|er|er.
'e| ws|Ne|wer| = wscr||.Crea|eOaec|("wscr||.Ne|wer|")
ws|Ne|wer|.|eme.eNe|wer|0r|.e "/."
RemovePrinterConnection
Semelhante ao mtodo RemoveNetworkDrive, o mtodo
RemovePrinterConnection remove um mapeamento feito
para uma impressora remota.
Set WshNetwork =
Wscript.CreateObject(Wscript.Network)
WshNetwork.RemovePrinterConnection strImpressora
Parmetro Descrio
strImpressora Impressora cujo mapeamento se pretende desfazer.
Exemplo
|em 0es|az e maeamea|e ara a |mressera em "||!1.".
'e| ws|Ne|wer| = wscr||.Crea|eOaec|("wscr||.Ne|wer|")
ws|Ne|wer|.|eme.e|r|a|erCeaaec||ea "||!1."
Objetos do W8H
35
SetDefaultPrinter
Define uma impressora como sendo a impressora padro
do Windows.
Set WshNetwork =
Wscript.CreateObject(Wscript.Network)
WshNetwork.SetDefaultPrinter strImpressora
Parmetro Descrio
strImpressora Nome da impressora que se quer definir como a
impressora padro do Windows. Note que apenas
nomes de impressora, no nomes de recursos locais
tais como LPT1:, so aceitos como argumento.
Exemplo
|em 0e||ae a |mressera \\/\\ ceme a |mressera acre ce w|acews.
'e| ws|Ne|wer| = wscr||.Crea|eOaec|("wscr||.Ne|wer|")
ws|Ne|wer|.'e|0e|aa|||r|a|er "\\/\\"
Objeto WshCollection
O objeto WshCollection no acessado explicitamente.
instanciado quando da utilizao dos mtodos
EnumNetworkDrives e EnumPrinterConnections do
objeto WshNetwork.
Palavra-Chave
ProgID N/A.
CLSID F935DC24-1CF0-11d0-ADB9-00C04FD58A0B.
Propriedades
Item Matriz contendo os elementos enumerados.
Count O nmero de elementos enumerados.
lenght O nmero de elementos enumerados (JScript).
Propriedades do objeto WshCollection
Item
a propriedade padro do objeto WshCollection. uma
matriz que contm os elementos enumerados, indexados
a partir de 0 (ou seja, o primeiro item tem ndice 0, o
segundo tem ndice 1 e assim por diante).
Set WshNetwork =
Wscript.CreateObject(Wscript.Network)
Set objEnum = WshNetwork.EnumNetworkDrives
ou
Set objEnum = WshNetwork.EnumPrinterConnections
strItem = objEnum (ndice)
Objetos do W8H
36
Count
Fornece o nmero de elementos enumerados.
Set WshNetwork =
Wscript.CreateObject(Wscript.Network)
Set objEnum = WshNetwork.EnumNetworkDrives
ou
Set objEnum = WshNetwork.EnumPrinterConnections
intItens = objEnum.Count
lenght
A propriedade lenght em tudo semelhante propriedade
Count. Usada para efeitos de compatibilidade com a
linguagem JScript.
Objeto WshEnvironment
O objeto WshEnvironment, assim como o WshCollection,
no explicitamente acessado. Para usar suas trs
propriedades e seu nico mtodo, em primeiro lugar
preciso instanci-lo utilizando a propriedade Environment
do objeto WshShell.
Palavra-Chave Descrio
ProgID N/A.
CLSID N/A.
Propriedades
Item Atribui ou obtm o valor de uma varivel de ambiente.
Count O nmero de elementos enumerados.
lenght O nmero de elementos enumerados (JScript).
Mtodo
Remove Remove uma varivel de ambiente.
Propriedades do objeto WshEnvironment
Item
a propriedade padro do objeto WshEnvironment.
Atravs dela possvel atribuir ou obter o valor de uma
varivel de ambiente. O uso da palavra Item opcional.
Set WshShell = Wscript.CreateObject(Wscript.Shell)
Set objEnvironment = WshShell.Environment([strTipo])
strVar = objEnvironment.Item(strVariavelDoAmbiente)
Parmetro Descrio
strTipo Tipo do objeto retornado. Pode ser SYSTEM, USER,
VOLATILE ou PROCESS no Windows NT e apenas
PROCESS no Windows 9x. Retornar SYSTEM no
Windows NT e PROCESS no Windows 9x, caso no
seja especificado.
Objetos do W8H
37
As principais variveis de ambiente so:
Nome Significado
NUMBER_OF_PROCESSORS
Nmero de processadores.
PROCESSOR_ARCHITECTURE
Tipo do processador.
PROCESSOR_IDENTIFIERID do processador da mquina.
PROCESSOR_LEVEL Nvel do processador da mquina.
PROCESSOR_REVISION Verso do processador.
OS Sistema operacional.
COMSPEC Executvel para a linha de comando.
HOMEDRIVE Drive local primrio; normalmente C:\.
HOMEPATH Diretrio padro para os usurios.
PATH Varivel PATH (a mesma encontrada no
arquivo Autoexec.bat).
PATHEXT Extenses de arquivos executveis
(.com, .exe, .bat, etc.).
PROMPT Prompt da linha de comando.
SYSTEMDRIVE Drive local onde encontra-se a pasta de
sistema.
SYSTEMROOT Pasta do sistema.
WINDIR Semelhante a SYSTEMROOT.
TMP Pasta onde so armazenados os arquivos
temporrios.
TEMP Semelhante a TMP.
Exemplo
|em Oa|em e aeme ce '|s|ema Oerac|eaa|.
'e| ws|'|e|| = wscr||.Crea|eOaec|("wscr||.'|e||")
'e| ea|a.|reamea| = ws|'|e||.|a.|reamea|("'\'!||")
s|r1ar = ea|a.|reamea|.||em("O'")
wscr||.ec|e s|r1ar
Count
Fornece o nmero de elementos enumerados.
Set WshShell = Wscript.CreateObject(Wscript.Shell)
Set objEnvironment = WshShell.Environment([strTipo])
intVar = objEnvironment.Count
lenght
A propriedade lenght em tudo semelhante propriedade
Count. Usada para compatibilidade com a linguagem JScript.
Mtodo do WshEnvironment
Remove
Exclui uma varivel de ambiente.
Set WshShell = Wscript.CreateObject(Wscript.Shell)
Set objEnvironment =
WshShell.Environment(VOLATILE)
objEnvironment.Remove strVarivelDeAmbiente
Objetos do W8H
38
Objeto WshShortcut
O objeto WshShortcut no explicitamente acessado. Para
poder trabalhar com ele, necessrio instanci-lo usando o
mtodo CreateShortcut() do objeto WshShell. O objeto
WshShortcut permite a criao e a manipulao de atalhos
na rea de trabalho do usurio.
Palavra-Chave
ProgID N/A.
CLSID F935DC28-1CF0-11d0-ADB9-00C04FD58A0B.
Propriedades
Arguments Argumentos passados para o atalho.
Description Uma descrio do atalho.
FullName Uma string contendo o caminho completo para
o atalho.
HotKey Uma tecla ou combinao de teclas que aciona
o atalho.
IconLocation A localizao do cone de um atalho.
TargetPath O arquivo alvo do atalho.
WindowsStyle O estilo da janela do atalho.
WorkingDirectory O diretrio de trabalho de um atalho.
Mtodos
Save Salva um atalho.
Propriedades do objeto WshShortcut
Arguments
Retorna um objeto WshArguments, contendo uma coleo
de argumentos passados para o atalho.
Set WshShell = Wscript.CreateObject(Wscript.Shell)
Set objShortcut =
WshShell.CreateShortcut(strNomeDoAtalho)
Set objArgs = objShortcut.Arguments
Exemplo
|em |\|ae |eces es aramea|es assaces ara e a|a||e cr|ace ara e Ne|eac.
'e| ws|'|e|| = wscr||.Crea|eOaec|("wscr||.'|e||")
'e| ea'|er|ca| = ws|'|e||.Crea|e'|er|ca|("c..\ae|eac.|a|")
'e| ea/rs = ea'|er|ca|../ramea|s
|er | = 0 |e ea/rs.Ceaa| - 1
wscr||.|c|e ea/rs(|)
Ne\|
Description
Fornece uma descrio do atalho.
Set WshShell = Wscript.CreateObject(Wscript.Shell)
Set objShortcut =
WshShell.CreateShortcut(strNomeDoAtalho)
objShortcut.Description = string
Objetos do W8H
39
FullName
Fornece uma string contendo o caminho completo para o
atalho.
Set WshShell = Wscript.CreateObject(Wscript.Shell)
Set objShortcut =
WshShell.CreateShortcut(strNomeDoAtalho)
strFullName = objShortcut.FullName
HotKey
Associa uma tecla ou combinao de teclas para acionar
um atalho.
Set WshShell = Wscript.CreateObject(Wscript.Shell)
Set objShortcut =
WshShell.CreateShortcut(strNomeDoAtalho)
objShortcut.HotKey = strHotKey
Exemplo
|em /ssec|a as |ec|as "C|r|", "/||" e "N" ae a|a||e cr|ace ara e Ne|eac.
'e| ws|'|e|| = wscr||.Crea|eOaec|("wscr||.'|e||")
'e| ea'|er|ca| = ws|'|e||.Crea|e'|er|ca|("c..\ae|eac.|a|")
ea'|er|ca|.He||e, = "/|! C!|| N"
IconLocation
Fornece a localizao do cone de um atalho.
Set WshShell = Wscript.CreateObject(Wscript.Shell)
Set objShortcut =
WshShell.CreateShortcut(strNomeDoAtalho)
objShortcut.IconLocation = strCaminhoDocone
TargetPath
Fornece o caminho para o arquivo alvo do atalho.
Set WshShell = Wscript.CreateObject(Wscript.Shell)
Set objShortcut =
WshShell.CreateShortcut(strNomeDoAtalho)
objShortcut.TargetPath = strAlvo
Exemplo
|em 0e||ae e cam|a|e ara e e\eca|a.e| ce Ne|eac.
'e| ws|'|e|| = wscr||.Crea|eOaec|("wscr||.'|e||")
'e| ea'|er|ca| = ws|'|e||.Crea|e'|er|ca|("c..\ae|eac.|a|")
ea'|er|ca|.!are||a|| = "c.\w|aa|\ae|eac.e\e"
WindowStyle
Fornece o estilo de janela de um atalho.
Set WshShell = Wscript.CreateObject(Wscript.Shell)
Set objShortcut =
WshShell.CreateShortcut(strNomeDoAtalho)
objShortcut.WindowStyle = intEstiloDaJanela
Objetos do W8H
40
Os valores possveis para intEstiloDaJanela so:
Estilos de Janela Descrio
1 Ativa e exibe a janela como do tipo Normal.
3 Ativa e exibe a janela maximizada.
1 Minimiza a janela e exibe a prxima janela.
Exemplo
|em 0e|erm|aa ae e Ne|eac sea |a|c|ace cem a aae|a m|a|m|zaca.
'e| ws|'|e|| = wscr||.Crea|eOaec|("wscr||.'|e||")
'e| ea'|er|ca| = ws|'|e||.Crea|e'|er|ca|("c..\ae|eac.|a|")
ea'|er|ca|.w|acew'|,|e = 1
WorkingDirectory
Fornece a pasta de trabalho do atalho.
Set WshShell = Wscript.CreateObject(Wscript.Shell)
Set objShortcut =
WshShell.CreateShortcut(strNomeDoAtalho)
objShortcut.WorkingDirectory = strPastaDeTrabalho
Mtodo do objeto WshShortcut
Save
Salva o atalho na localizao especificada no argumento
do mtodo CreateShortcut() do objeto WshShell.
Set WshShell = Wscript.CreateObject(Wscript.Shell)
Set objShortcut = WshShell.CreateShortcut(strNomeAtalho)
objShortcut.Save
Exemplo
|em 'a|.a am a|a||e ara e Ne|eac aa aa|cace C.
'e| ws|'|e|| = wscr||.Crea|eOaec|("wscr||.'|e||")
'e| ea'|er|ca| = ws|'|e||.Crea|e'|er|ca|("c..\ae|eac.|a|")
ea'|er|ca|.!are||a|| = "c.\w|aa|\ae|eac.e\e"
ea'|er|ca|.w|acew'|,|e = 1
ea'|er|ca|.0escr|||ea = "/|a||e ara e Ne|eac|"
ea'|er|ca|.wer||a0|rec|er, = "c.\w|aa|"
ea'|er|ca|.'a.e
Objeto WshSpecialFolders
O objeto WshSpecialFolders permite obter o caminho para
as pastas especiais do Windows. instanciado quando da
utilizao da propriedade SpecialFolders do objeto WshShell.
Palavra-Chave
ProgID N/A.
CLSID N/A.
Propriedades
Item Matriz de elementos contendo o caminho completo
para as pastas especiais do Windows.
Count O nmero de elementos enumerados.
lenght O nmero de elementos enumerados (JScript).
Objetos do W8H
41
Propriedades do objeto
WshSpecialFolders
Item
A propriedade Item a propriedade padro do objeto
WshSpecialFolders. uma matriz de elementos que contm
o caminho completo para as pastas especiais do Windows.
Se a pasta no existir, NULL ser retornado. O uso da
palavra reservada Item opcional, o que significa dizer
desnecessrio.
Set WshShell = Wscript.CreateObject(Wscript.Shell)
strVar = WshShell.SpecialFolders.Item(strNomeDaPasta)
Parmetro Descrio
strNomeDaPasta Especifica o nome de uma das pastas
especiais do Windows.
Count
Fornece o nmero de elementos enumerados.
Set WshShell = Wscript.CreateObject(Wscript.Shell)
intVar = WshShell.SpecialFolders.Count
lenght
A propriedade lenght em tudo semelhante propriedade
Count. Usada para efeitos de compatibilidade com a
linguagem JScript.
Objeto WshURLShortcut
O objeto WshURLShortcut tambm instanciado a partir da
utilizao do mtodo CreateShortcut() do objeto WshShell.
Permite criar e manipular atalhos para URLs.
Palavra-Chave Descrio
ProgID N/A.
CLSID N/A.
Propriedades
FullName Uma string contendo o caminho completo para o
atalho.
TargetPath A URL alvo do atalho.
Mtodos
Save Salva um atalho.
Objetos do W8H
42
Propriedades do objeto
WshURLShortcut
FullName
Fornece uma string contendo o caminho completo para o
atalho.
Set WshShell = Wscript.CreateObject(Wscript.Shell)
Set objURLShortcut =
WshShell.CreateShortcut(strNomeDoAtalho)
strFullName = objURLShortcut.FullName
TargetPath
Fornece o caminho para a URL alvo do atalho.
Set WshShell = Wscript.CreateObject(Wscript.Shell)
Set objURLShortcut =
WshShell.CreateShortcut(strNomeDoAtalho)
objURLShortcut.TargetPath = strAlvo
Mtodo do objeto WshURLShortcut
Save
Salva o atalho na localizao especificada no argumento
do mtodo CreateShortcut() do objeto WshShell.
Set WshShell = Wscript.CreateObject(Wscript.Shell)
Set objURLShortcut =
WshShell.CreateShortcut(strNomeDoAtalho)
objURLShortcut.Save
Objetos do W8H
43
Objeto Dictionary
O objeto Dictionary no um objeto intrnseco ao WSH,
mas pode ser bastante til em diversas situaes. O objeto
Dictionary permite armazenar pares nome/valor
(referenciados como chave e item, respectivamente) em
uma matriz. Cada item associado a uma nica chave.
Sintaxe para a instanciao do objeto:
Set obj = CreateObject(Scripting.Dictionary)
No exemplo abaixo criado um objeto Dictionary
chamado frutas, ao qual adiciona-se chaves e valores.
Ao final, o script exibir uma caixa de mensagem com o
item contido na chave d.
Exemplo
0|m |ra|as
'e| |ra|as = Crea|eOaec|("'cr|||a.0|c||eaar,")
|ra|as./cc "a", "|araaa"
|ra|as./cc "a", "|a"
|ra|as./cc "c", "|eraae"
|ra|as./cc "c", "|ssee"
wscr||.|c|e "/ |ra|a cea||ca aa c|a.e 'c' e. " o |ra|as.||em("c")
Propriedade
CompareMode Define ou retorna o modo utilizado na comparao
de strings.
Count Retorna o nmero de itens em um objeto Dictionary.
Item Define ou retorna um item para uma chave
especificada.
Key Define ou retorna o valor de uma chave especificada.
Mtodos
Add Adiciona um par chave/item ao objeto Dictionary.
Exists Booleano. Retornar True se a chave especificada
existir.
Items Retorna uma matriz contendo todos os itens de um
objeto Dictionary.
Keys Retorna uma matriz contendo todas as chaves de
um objeto Dictionary.
Remove Remove um par chave/item de um objeto Dictionary.
RemoveAll Remove todos os pares chave/item de um objeto
Dictionary.
Objetos do W8H
44
CompareMode
A propriedade CompareMode define ou retorna o modo
utilizado na comparao de strings em um objeto
Dictionary. Disponvel somente no VBScript.
Set obj = CreateObject(Scripting.Dictionary)
obj.CompareMode [=compara]
Argumento Descrio
compara Modo de comparao usado por funes
como StrComp.
vbBinaryCompare=0 Comparao binria.
vbTextCompare=1 Comparao textual.
Count
A propriedade Count retorna o nmero de itens em um
objeto Dictionary.
'e| > = Crea|eOaec|("'cr|||a.0|c||eaar,")
>.Ceaa|
Item
A propriedade Item define ou retorna um item para uma
chave especificada em um objeto Dictionary.
Set obj = CreateObject(Scripting.Dictionary)
obj.Item(chave)[=novoitem]
Argumento Descrio
chave Chave associada ao item que estiver sendo lido ou adicionado.
novoitem Novo valor associado chave. Usado somente com
objeto Dictionary.
Key
A propriedade Key define ou retorna o valor de uma chave
em um objeto Dictionary.
Set obj = CreateObject(Scripting.Dictionary)
obj.Key (chave) = novachave
Argumento Descrio
chave Chave existente.
novachave Novo valor da chave.
Add
O mtodo Add adiciona um par chave/item a um objeto
Dictionary.
Set obj = CreateObject(Scripting.Dictionary)
obj.Add chave, item
Argumento Descrio
chave Chave associada ao item que estiver sendo adicionado.
item Item a ser adicionado.
Objeto Dictionary
45
Exists
O mtodo Exists retornar True se a chave especificada
existir no objeto Dictionary; caso contrrio, retornar
False.
Set obj = CreateObject(Scripting.Dictionary)
obj.Exists (chave)
Argumento Descrio
chave Chave a ser pesquisada no objeto Dictionary.
Items
O mtodo Items retorna uma matriz contendo todos os
itens de um objeto Dictionary.
Set obj = CreateObject(Scripting.Dictionary)
obj.Items
Keys
O mtodo Keys retorna uma matriz contendo todas as
chaves de um objeto Dictionary.
Set obj = CreateObject(Scripting.Dictionary)
obj.Keys
Remove
O mtodo Remove remove um par chave/item de um
objeto Dictionary.
Set obj = CreateObject(Scripting.Dictionary)
obj.Remove (chave)
Argumento Descrio
chave Chave a ser removida do objeto Dictionary.
RemoveAll
O mtodo RemoveAll remove todos os pares chave/item
de um objeto Dictionary.
Set obj = CreateObject(Scripting.Dictionary)
obj.RemoveAll
Objeto Dictionary
46
FileSystemObject
O FileSystemObject, ou simplesmente FSO, est contido na
biblioteca scrrun.dll. O FSO permite ao desenvolvedor
interagir com o sistema de arquivos do Windows, inclusive
fornecendo outros objetos e colees para tarefas especficas,
tais como listar os drives da mquina ou copiar o contedo
de uma pasta para outra localizao.
Objetos
FileSystemObject Objeto principal do FSO. Tem de ser instanciado
antes de qualquer outro.
Drive Fornece acesso s propriedades dos drives da
mquina.
File Fornece propri edades e mtodos para
manipulao de arquivos.
Folder Fornece propri edades e mtodos para
manipulao de pastas.
TextStream Permite acessar (criar, ler e escrever) arquivos
de texto.
Colees
Drives Uma lista de todos os drives da mquina.
Files Uma lista dos arquivos contidos em uma pasta.
Folders Uma lista das pastas contidas em outra pasta ou
na raiz de um disco.
Com o FSO voc poder:
desenvolver pginas ASP e
criar scripts do WSH.
O primeiro passo antes de utilizar as propriedades, mtodos,
objetos e colees fornecidos pelo FSO instanciar o objeto
principal, o FileSystemObject, da seguinte forma:
Set fso = CreateObject(Scripting.FileSystemObject)
Vamos ver ento o que o objeto principal, o FileSytemObject,
tem a nos oferecer.
Propriedade
Drives Retorna uma coleo Drives.
Mtodos
BuildPath Anexa um nome a um caminho existente.
CopyFile Copia um arquivo para um local especificado.
CopyFolder Copia uma pasta para um local especificado.
CreateFolder Cria uma pasta.
CreateTextFile Cria um arquivo de texto.
DeleteFile Exclui um arquivo.
DeleteFolder Exclui uma pasta.
DriveExists Retornar True se o drive especificado existir.
FileExists Retornar True se o arquivo especificado
existir.
File8ystemObject
47
FolderExists Retornar True se a pasta especificada
existir.
GetAbsolutePathName Retorna o caminho completo para a pasta
atual.
GetBaseName Retorna o nome de um arquivo sem a
extenso.
GetDrive Retorna um objeto Drive.
GetDriveName Retorna o nome de um drive.
GetExtensionName Retorna a extenso de um arquivo.
GetFile Retorna um objeto File.
GetFileName Retorna o nome do arquivo em um caminho
especificado.
GetFolder Retorna um objeto Folder.
GetParentFolderName Retorna a pasta onde est contida a ltima
pasta ou arquivo de um caminho.
GetSpecialFolder Retorna o caminho para uma pasta especial
do Windows.
GetTempName Retorna um nome de arquivo temporrio.
MoveFile Move um arquivo para outra localizao.
MoveFolder Move uma pasta e seu contedo para outra
localizao.
OpenTextFile Abre um arquivo de texto.
Drives
Retorna uma coleo Drives onde esto contidos todos os
drives da mquina.
Set fso =CreateObject(Scripting.FileSystemObject)
Set myDrives = fso.Drives
Exemplo
|em |\|ae |eces es cr|.es ca maa|aa.
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
'e| m,0r|.es = |se.0r|.es
|er |ac| cr|.e |a m,0r|.es
' = ' cr|.e "\" c|r(10)
Ne\|
wscr||.|c|e '
BuildPath
Anexa um nome a um caminho existente.
Set fso =CreateObject(Scripting.FileSystemObject)
novocaminho = fso.BuildPath(caminho, nome)
Parmetro Descrio
caminho Caminho ao final do qual se quer adicionar um nome.
nome Nome que se quer adicionar ao caminho existente.
Exemplo
|em /c|c|eaa e aeme ce ara|.e "\.|\|" ae cam|a|e "c.\w|acews\".
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
ae.ecam|a|e = |se.ba||c|a||("c.\w|acews", "\.|\|")
wscr||.|c|e ae.ecam|a|e
File8ystemObject
48
CopyFile
Copia um ou mais arquivos para um local especificado.
Set fso = CreateObject(Scripting.FileSystemObject)
fso.CopyFile origem, destino [,fSubstituir]
Parmetro Descrio
origem Caminho completo para o(s) arquivo(s) a ser(em)
copiado(s). Caracteres curinga (*) podem ser usados
no lugar do nome dos arquivos.
destino Nova localizao do(s) arquivo(s).
fSubstituir Se True, substituir os arquivos existentes na nova
localizao que tenham o mesmo nome dos arquivos
que esto sendo copiados.
Exemplo
|em Ce|a e ara|.e "c.\\.|\|" ara a as|a "c.\w|acews\".
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
|se.Ce,|||e "c.\\.|\|", "c.\w|acews\"
CopyFolder
Copia uma pasta para um local especificado.
Set fso = CreateObject(Scripting.FileSystemObject)
fso.CopyFolder origem, destino [,fSubstituir]
Parmetro Descrio
origem Caminho completo para a pasta a ser copiada.
Caracteres curinga (*) podem ser usados no lugar do
nome da pasta.
destino Nova localizao da pasta.
fSubstituir Se True, substituir os arquivos homnimos caso haja
uma pasta na nova localizao com o mesmo nome da
pasta a ser copiada.
Exemplo
|em Ce|a a as|a "c.\|es|e\" ara a as|a "c.\w|acews\".
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
|se.Ce,|e|cer "c.\|es|e", "c.\w|acews\"
CreateFolder
Cria uma pasta na localizao especificada, retornando
um objeto Folder.
Set fso = CreateObject(Scripting.FileSystemObject)
Set f = fso.CreateFolder(strNovaPasta)
Parmetro Descrio
strNovaPasta Caminho completo para a nova pasta a ser criada.
Ser retornado um erro caso a pasta j exista.
Exemplo
|em Cr|a a as|a "ae.aas|a" em "c.\".
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
'e| | = |se.Crea|e|e|cer("c.\ae.aas|a")
File8ystemObject
49
CreateTextFile
Cria um novo arquivo de texto na localizao especificada,
retornando um objeto TextStream.
Set fso = CreateObject(Scripting.FileSystemObject)
Set f = fso.CreateTextFile(strArquivoTexto [,fSubstituir]
[,unicode])
Parmetro Descrio
strArquivoTexto Caminho completo para o arquivo de texto a ser
criado.
fSubstituir Se True, substituir um arquivo homnimo pelo
arquivo que estiver sendo criado. Se False, o
arquivo original ser mantido.
unicode Se True, um arquivo Unicode ser criado. Se False
ou omitido, ser criado um arquivo ASCII.
Exemplo
|em Cr|a am ara|.e c|amace "\.|\|" em "c.\".
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
'e| | = |se.Crea|e!e\||||e("c.\\.|\|", |rae)
DeleteFile
Exclui um arquivo.
Set fso = CreateObject(Scripting.FileSystemObject)
fso.DeleteFile strArquivo [,fForado]
Parmetro Descrio
strArquivo Caminho para o arquivo a ser excludo.
fForado Booleano. Esse parmetro ter de ser True se o
arquivo a ser excludo for somente de leitura.
Exemplo
|em |\c|a| e ara|.e "\.|\|" cr|ace aa|er|ermea|e.
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
|se.0e|e|e|||e "c.\\.|\|", |rae
DeleteFolder
Exclui uma pasta.
Set fso = CreateObject(Scripting.FileSystemObject)
fso.DeleteFolder strPasta [,fForado]
Parmetro Descrio
strPasta Caminho para a pasta a ser excluda.
fForado Booleano. Esse parmetro ter de ser True se a pasta
a ser excluda for somente de leitura.
Exemplo
|em |\c|a| a as|a "ae.aas|a" cr|aca aa|er|ermea|e.
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
|se.0e|e|e|e|cer "c.\ae.aas|a"
File8ystemObject
50
DriveExists
Retornar True se o drive especificado existir.
Set fso = CreateObject(Scripting.FileSystemObject)
fRetorno = fso.DriveExists(strDrive)
Parmetro Descrio
strDrive Nome do drive.
Exemplo
|em 1er|||ca se e cr|.e "z.\" e\|s|e.
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
||e|erae = |se.0r|.e|\|s|s("z.")
|| ||e|erae = !rae ||ea
wscr||.|c|e "O cr|.e /.\ e\|s|e|"
e|se
wscr||.|c|e "O cr|.e /.\ ae e\|s|e|"
eac ||
FileExists
Similar ao mtodo DriveExists(), o mtodo FileExists()
tambm retornar True se o arquivo especificado existir.
Set fso = CreateObject(Scripting.FileSystemObject)
fRetorno = fso.FileExists(strArquivo)
Parmetro Descrio
strArquivo Caminho completo para o arquivo cuja existncia se
pretende averiguar.
Exemplo
|em 1er|||ca se e ara|.e "\.|\|" e\|s|e.
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
||e|erae = |se.|||e|\|s|s("c.\\.|\|")
|| ||e|erae = !rae ||ea
wscr||.|c|e "O ara|.e e\|s|e|"
e|se
wscr||.|c|e "O ara|.e ae e\|s|e|"
eac ||
FolderExists
Retornar True se a pasta especificada existir.
Set fso = CreateObject(Scripting.FileSystemObject)
fRetorno = fso.FileExists(strArquivo)
Parmetro Descrio
strArquivo Caminho completo para a pasta cuja existncia se
pretende averiguar.
File8ystemObject
51
Exemplo
|em 1er|||ca a as|a w|acews e\|s|e.
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
||e|erae = |se.|e|cer|\|s|s("c.\w|acews")
|| ||e|erae = !rae ||ea
wscr||.|c|e "/ as|a w|acews e\|s|e|"
e|se
wscr||.|c|e "/ as|a w|acews ae e\|s|e| |re.a.e|mea|e .ec |as|a|ea e
s|s|ema em ea|ra maa|aa."
eac ||
GetAbsolutePathName
Retorna o caminho completo da pasta atual em relao a
outra pasta.
Set fso = CreateObject(Scripting.FileSystemObject)
strCaminho =
fso.GetAbsolutePathName(strEspecificao)
Parmetro Descrio
strEspecificao Um pouco difcil de explicar com palavras. Observe
o exemplo abaixo.
Exemplo
|em |ar||ace ce r|ac||e ae a as|a a|aa| e "|eas 0ecamea|es", easer.e e
cemer|amea|e ce me|ece e|/ase|a|e|a||Name.
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
s|rCam|a|e = |se.e|/ase|a|e|a||Name("c.")
|em 1a| e\|a|a|r "c.\meas cecamea|es"
wscr||.|c|e s|rCam|a|e
s|rCam|a|e = |se.e|/ase|a|e|a||Name("reaer|e")
wscr||.|c|e s|rCam|a|e
|em 1a| e\|a|r "c.\meas cecamea|es\reaer|e"
s|rCam|a|e = |se.e|/ase|a|e|a||Name("c.\\\")
wscr||.|c|e s|rCam|a|e
|em 1a| e\|a|r "c.\"
GetBaseName
Retorna o nome de um arquivo sem a extenso.
Set fso = CreateObject(Scripting.FileSystemObject)
strNomeDoArquivo = fso.GetBaseName(strCaminho)
Parmetro Descrio
strCaminho Caminho completo para o arquivo.
Exemplo
|em |e|eraa e aeme ce ara|.e "Ne|eac.e\e".
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
s|rNeme0e/ra|.e = |se.e|baseName("c.\w|acews\ae|eac.e\e")
wscr||.|c|e s|rNeme0e/ra|.e
File8ystemObject
52
GetDrive
Retorna um objeto Drive.
Set fso = CreateObject(Scripting.FileSystemObject)
Set objDrive = fso.GetDrive(strDrive)
Parmetro Descrio
strDrive Uma denominao aceitvel para o drive. Pode ser
uma letra, uma letra seguida de dois pontos, uma letra
seguida de dois pontos e de uma barra invertida, ou um
nome de compartilhamento.
GetDriveName
Retorna o nome do drive contido no caminho fornecido.
Set fso = CreateObject(Scripting.FileSystemObject)
strDrive = fso.GetDriveName(strCaminho)
Parmetro Descrio
strCaminho Um caminho na forma unidadededisco\pasta\arquivo.
O mtodo retornar justamente a unidadededisco.
GetExtensionName
Similar ao mtodo GetBaseName(), s que ele retorna
justamente a extenso de um arquivo.
Set fso = CreateObject(Scripting.FileSystemObject)
strExtDoArquivo = fso.GetExtensionName(strCaminho)
Exemplo
|em |e|eraa a e\|ease ce ara|.e "Ne|eac.e\e".
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
s|r|\|0e/ra|.e = |se.e||\|eas|eaName("c.\w|acews\ae|eac.e\e")
wscr||.|c|e s|r|\|0e/ra|.e
GetFile
Retorna um objeto File para um arquivo existente.
Set fso = CreateObject(Scripting.FileSystemObject)
Set objFile = fso.GetFile(strArquivo)
Parmetro Descrio
strArquivo Caminho completo para o arquivo a ser retornado.
GetFileName
Retorna o nome do arquivo em um dado caminho.
Set fso = CreateObject(Scripting.FileSystemObject)
strNomeDoArquivo = fso.GetFileName(strCaminho)
Parmetro Descrio
strCaminho Caminho completo para o arquivo cujo nome se
pretende obter.
File8ystemObject
53
GetFolder
Retorna um objeto Folder para uma pasta existente.
Set fso = CreateObject(Scripting.FileSystemObject)
Set f = fso.GetFolder(strPasta)
Parmetro Descrio
strPasta Caminho completo para a pasta a ser retornada.
GetParentFolderName
Retorna a pasta onde est contida a ltima pasta ou
arquivo de um caminho.
Set fso = CreateObject(Scripting.FileSystemObject)
strParentFolder = fso.GetParentFolderName(strCaminho)
Parmetro Descrio
strCaminho Caminho completo para uma pasta ou arquivo.
Exemplo
|em |e|eraa a as|a eace es|a cea||ca a as|a "',s|em" ce w|acews.
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
s|r|area||e|cer = |se.e||area||e|cerName("c.\w|acews\s,s|em")
wscr||.|c|e s|r|area||e|cer
GetSpecialFolder
Retorna o nome de uma pasta especial do Windows.
Set fso = CreateObject(Scripting.FileSystemObject)
strSpecialFolder = fso.GetSpecialFolder(intTipo)
Parmetro Descrio
intTipo
0 Pasta onde esto instalados os arquivos do Windows
(normalmente, C:\Windows ou C:\Winnt).
1 Pasta onde esto os arquivos de sistema do Windows
(normal mente, C:\Wi ndows\System ou
C:\Winnt\System).
2 Pasta onde so armazenados os arquivos temporrios.
GetTempName
Gera um nome aleatrio de arquivo temporrio que pode
ser usado pelo mtodo CreateTextFile() em tarefas que
exijam a utilizao de arquivos temporrios.
Set fso = CreateObject(Scripting.FileSystemObject)
ArquivoTemporrio = fso.GetTempName
Exemplo
|em era am aeme a|ea|er|e ce ara|.e |emerar|e ara ser a||||zace e|e
me|ece Crea|e!e\||||e().
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
/ra|.e!emerar|e = |se.e|!emName
'e| ea|||e = |se.Crea|e!e\||||e(/ra|.e!emerar|e)
wscr||.|c|e |se.e||||eName(/ra|.e!emerar|e)
File8ystemObject
54
MoveFile
Move um ou vrios arquivos para outra localizao.
Semelhante a CopyFile, no entanto o(s) arquivo(s)
deixa(m) de existir na origem. Os arquivos s sero
movidos de um volume para o outro se o sistema
operacional permitir.
Set fso = CreateObject(Scripting.FileSystemObject)
fso.MoveFile origem, destino
Parmetro Descrio
origem Caminho completo para o(s) arquivo(s) a ser(em)
movidos(s). Caracteres curinga (*) podem ser usados
no lugar do nome dos arquivos.
destino Nova localizao do(s) arquivo(s).
Exemplo
|em |e.e e ara|.e "c.\\.|\|" ara a as|a "c.\w|acews\".
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
|se.|e.e|||e "c.\\.|\|", "c.\w|acews\"
MoveFolder
Move uma pasta para outra localizao. Similar ao mtodo
CopyFolder, no entanto a pasta deixa de existir na origem.
Set fso = CreateObject(Scripting.FileSystemObject)
fso.MoveFolder origem, destino
Parmetro Descrio
origem Caminho completo para a pasta a ser movida.
Caracteres curinga (*) podem ser usados no lugar do
nome da pasta.
destino Nova localizao da pasta.
Exemplo
|em |e.e a as|a "c.\|es|e\" ara a as|a "c.\w|acews\".
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
|se.|e.e|e|cer "c.\|es|e", "c.\w|acews\"
OpenTextFile
Abre um arquivo de texto e retorna um objeto TextStream.
Set fso = CreateObject(Scripting.FileSystemObject)
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set f = fso.OpenTextFile(strArquivo [,intModoDeAbertura]
[,fCriarNovo] [,intFormato])
Parmetro Descrio
strArquivo Caminho completo para o arquivo de texto a ser
aberto.
File8ystemObject
55
intModoDeAbertura Indica o que poder ser feito com o arquivo
depois de aberto.
ForReading Somente leitura.
ForWriting Escrita.
ForAppending Dados sero anexados ao fim do arquivo.
fCriarNovo Booleano. Indica se dever ser criado um novo
arquivo caso strArquivo no exista. O padro
False.
intFormato Um dos trs valores TriState usados para definir
o formato de abertura do arquivo.
-2 TriStateUseDefault. Usa o padro do sistema
para abrir o arquivo.
-1 TriStateTrue. Abre o arquivo como Unicode.
0 TriStateFalse. Abre o arquivo como ASCII.
Exemplo
|em /are e ara|.e "c.\\.|\|" ara escr||a.
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
Ceas| |er|eac|a = 1, |erwr|||a = 2, |er/eac|a = 8
'e| | = |se.Oea!e\||||e("c.\\.|\|", |erwr|||a, !rae)
Objeto Drive
O objeto Drive instanciado atravs da utilizao do
mtodo GetDrive() do objeto FileSystemObject.
Propriedades Descrio
AvailableSpace A quantidade de espao disponvel em um drive
para o usurio.
DriveLetter A letra que representa o drive.
DriveType O tipo do drive.
FileSystem O sistema de arquivos em uso.
FreeSpace A quantidade de espao livre no drive.
IsReady Retornar True se o drive estiver pronto para ser
usado.
Path Caminho para um drive.
RootFolder Pasta raiz do drive.
SerialNumber Nmero de identificao exclusiva do volume.
ShareName Retorna o compartilhamento de rede para um drive
especificado.
TotalSize A quantidade de espao em um drive.
VolumeName Define ou retorna o nome do volume.
Propriedades do objeto Drive
AvailableSpace
Retorna a quantidade de espao disponvel para o usurio
no drive especificado. Normalmente esse valor ser igual
quele retornado pela propriedade FreeSpace.
Set fso = CreateObject(Scripting.FileSystemObject)
Set objDrive = fso.GetDrive(strDrive)
intEspao = objDrive.AvailableSpace
File8ystemObject
56
DriveLetter
Retorna a letra que representa um drive.
Set fso = CreateObject(Scripting.FileSystemObject)
Set objDrive = fso.GetDrive(strDrive)
strLetra = objDrive.DriveLetter
DriveType
Retorna um inteiro indicando o tipo do drive.
Set fso = CreateObject(Scripting.FileSystemObject)
Set objDrive = fso.GetDrive(strDrive)
intTipoDoDrive = objDrive.DriveType
Tipo Descrio
0 Desconhecido.
1 Removvel (disquete).
2 Fixo.
3 Drive de Rede.
4 Drive de CD-ROM.
5 Disco de RAM.
FileSystem
Retorna o nome do sistema de arquivo em uso no volume.
Os valores de retorno podem ser, tipicamente, FAT,
NTFS e CDFS.
Set fso = CreateObject(Scripting.FileSystemObject)
Set objDrive = fso.GetDrive(strDrive)
strSistemaDeArquivo = objDrive.FileSystem
FreeSpace
Retorna a quantidade de espao livre num drive.
Set fso = CreateObject(Scripting.FileSystemObject)
Set objDrive = fso.GetDrive(strDrive)
intEspao = objDrive.FreeSpace
IsReady
Retornar True se o drive estiver pronto para operaes de
entrada/sada. Caso contrrio retornar False.
Especialmente til para trabalhar com disquetes e CD-
ROM.
Set fso = CreateObject(Scripting.FileSystemObject)
Set objDrive = fso.GetDrive(strDrive)
fPronto = objDrive.IsReady
File8ystemObject
57
Path
Retorna o caminho para um drive.
Set fso = CreateObject(Scripting.FileSystemObject)
Set objDrive = fso.GetDrive(strDrive)
strCaminho = objDrive.Path
RootFolder
Especifica a pasta raiz de um drive.
Set fso = CreateObject(Scripting.FileSystemObject)
Set objDrive = fso.GetDrive(strDrive)
strPastaRaiz = objDrive.RootFolder
SerialNumber
Retorna um identificador decimal exclusivo para o volume.
Set fso = CreateObject(Scripting.FileSystemObject)
Set objDrive = fso.GetDrive(strDrive)
intID = objDrive.SerialNumber
ShareName
Retorna o compartilhamento de rede para um drive.
Set fso = CreateObject(Scripting.FileSystemObject)
Set objDrive = fso.GetDrive(strDrive)
strCompartilhamento = objDrive.ShareName
TotalSize
Retorna a quantidade total de espao em um drive, em
bytes.
Set fso = CreateObject(Scripting.FileSystemObject)
Set objDrive = fso.GetDrive(strDrive)
intEspaoTotal = objDrive.TotalSize
VolumeName
Retorna ou atribui um nome a um volume.
Set fso = CreateObject(Scripting.FileSystemObject)
Set objDrive = fso.GetDrive(strDrive)
strLetra = objDrive.VolumeName
ou
objDrive.VolumeName = strLetra
File8ystemObject
58
Objeto File
O objeto File instanciado atravs da utilizao do mtodo
GetFile() do objeto FileSystemObject.
Propriedades Descrio
Attributes Obtm ou define atributos de um arquivo.
DateCreated Data da criao de um arquivo.
DateLastAcessed Data em que um arquivo foi acessado pela
ltima vez.
DateLastModified Data em que um arquivo foi modificado pela
ltima vez.
Drive Retorna a letra do drive onde o arquivo reside.
Name Define ou retorna o nome do arquivo.
ParentFolder Pasta onde o arquivo reside.
Path Caminho completo para o arquivo.
ShortName Nome do arquivo usando a conveno de
nomenclatura do MS-DOS (8.3).
ShortPath Caminho completo para o arquivo usando a
conveno de nomenclatura do MS-DOS.
Size Tamanho do arquivo em bytes.
Type Retorna informaes sobre o tipo do arquivo.
Mtodos Descrio
Copy Copia um arquivo para outra localizao.
Delete Exclui um arquivo.
Move Move um arquivo para outra localizao.
OpenAsTextStream Abre um arquivo como sendo um fluxo de
texto.
Propriedades do objeto File
Attributes
Retorna ou define os atributos de um arquivo.
Set fso = CreateObject(Scripting.FileSystemObject)
Set objFile = fso.GetFile(strArquivo)
intAtributos = objFile.Attributes
ou
objFile.Attributes = intAtributos
Parmetro Descrio
0 Arquivo normal. Nenhum atributo definido.
1 Arquivo somente leitura.
2 Arquivo oculto.
4 Arquivo de sistema.
8 Drive de disco.
16 Pasta.
32 Arquivo foi alterado desde o ltimo backup.
64 Atalho.
128 Arquivo comprimido.
File8ystemObject
59
DateCreated
Retorna a data e a hora da criao de um arquivo.
Set fso = CreateObject(Scripting.FileSystemObject)
Set objFile = fso.GetFile(strArquivo)
strData = objFile.DateCreated
DateLastAcessed
Retorna a data e a hora em que um arquivo foi acessado
pela ltima vez.
Set fso = CreateObject(Scripting.FileSystemObject)
Set objFile = fso.GetFile(strArquivo)
strData = objFile.DateLastAcessed
DateLastModified
Retorna a data e a hora em que um arquivo foi modificado
pela ltima vez.
Set fso = CreateObject(Scripting.FileSystemObject)
Set objFile = fso.GetFile(strArquivo)
strData = objFile.DateLastModified
Drive
Retorna a letra do drive onde o arquivo reside.
Set fso = CreateObject(Scripting.FileSystemObject)
Set objFile = fso.GetFile(strArquivo)
strLetraDoDrive = objFile.Drive
Name
Define ou obtm o nome de um arquivo.
Set fso = CreateObject(Scripting.FileSystemObject)
Set objFile = fso.GetFile(strArquivo)
strNome = objFile.Name
objFile.Name = strNome
ParentFolder
Retorna a pasta onde o arquivo reside.
Set fso = CreateObject(Scripting.FileSystemObject)
Set objFile = fso.GetFile(strArquivo)
strPasta = objFile.ParentFolder
Path
Retorna o caminho completo para o arquivo.
Set fso = CreateObject(Scripting.FileSystemObject)
Set objFile = fso.GetFile(strArquivo)
strCaminho = objFile.Path
File8ystemObject
60
ShortName
Fornece o nome do arquivo usando a conveno de
nomenclatura do MS-DOS (8.3).
Set fso = CreateObject(Scripting.FileSystemObject)
Set objFile = fso.GetFile(strArquivo)
strNomeCurto = objFile.ShortName
ShortPath
Fornece o caminho completo para o arquivo usando a
conveno de nomenclatura do MS-DOS (8.3).
Set fso = CreateObject(Scripting.FileSystemObject)
Set objFile = fso.GetFile(strArquivo)
strNomeCurto = objFile.ShortPath
Size
Retorna o tamanho de um arquivo em bytes. Se quiser
converter para megabytes, basta dividir o valor retornado
por 1024.
Set fso = CreateObject(Scripting.FileSystemObject)
Set objFile = fso.GetFile(strArquivo)
intTamanhoDoArquivo = objFile.Size
Type
Retorna informaes sobre o tipo do arquivo. Por exemplo,
para um arquivo .txt, retornaria Text Document.
Acredito que a propriedade obtenha essas associaes em
HKEY_CLASSES_ROOT.
Set fso = CreateObject(Scripting.FileSystemObject)
Set objFile = fso.GetFile(strArquivo)
strTipoDoArquivo = objFile.Type
Mtodos do objeto File
Copy
Copia um arquivo para outra localizao.
Set fso = CreateObject(Scripting.FileSystemObject)
Set objFile = fso.GetFile(strArquivo)
objFile.Copy destino [,fSubstituir]
Parmetro Descrio
destino Nova localizao do arquivo.
fSubstituir Se True, substituir um arquivo existente na nova
localizao que tenha o mesmo nome do arquivo que
estiver sendo copiado.
File8ystemObject
61
Exemplo
|em Ce|a e ara|.e "c.\\.|\|" ara a as|a "c.\w|acews\".
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
'e| ea|||e = |se.e||||e("c.\\.|\|")
ea|||e.Ce, "c.\w|acews\"
Delete
Exclui um arquivo.
Set fso = CreateObject(Scripting.FileSystemObject)
Set objFile = fso.GetFile(strArquivo)
objFile.Delete [fForado]
Parmetro Descrio
fForado Booleano. Dever ser True caso o arquivo a ser
excludo seja somente leitura.
Exemplo
|em |\c|a| e ara|.e "c.\\.|\|".
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
'e| ea|||e = |se.e||||e("c.\\.|\|")
ea|||e.0e|e|e
Move
Move um arquivo para outra localizao.
Set fso = CreateObject(Scripting.FileSystemObject)
Set objFile = fso.GetFile(strArquivo)
objFile.Move destino
Parmetro Descrio
destino Nova localizao do arquivo.
Exemplo
|em |e.e e ara|.e "c.\\.|\|" ara a as|a "c.\w|acews\".
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
'e| ea|||e = |se.e||||e("c.\\.|\|")
ea|||e.|e.e "c.\w|acews\"
OpenAsTextStream
Abre um arquivo de texto e retorna um objeto TextStream.
Set fso = CreateObject(Scripting.FileSystemObject)
Set objFile = fso.GetFile(strArquivo)
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set FluxoDetexto =
objFile.OpenAsTextStream([intModoDeAbertura]
[,intFormato])
File8ystemObject
62
Parmetro Descrio
intModoDeAbertura Indica o que poder ser feito com o arquivo
depois de aberto.
ForReading Somente leitura.
ForWriting Escrita.
ForAppending Dados sero anexados no fim do arquivo.
intFormato Um dos trs valores TriState usados para definir
o formato de abertura do arquivo.
-2 TriStateUseDefault. Usa o padro do sistema
para abrir o arquivo.
-1 TriStateTrue. Abre o arquivo como Unicode.
0 TriStateFalse. Abre o arquivo como ASCII.
Exemplo
|em /are e ara|.e "c.\\.|\|" ara escr||a.
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
'e| ea|||e = |se.e||||e("c.\\.|\|")
Ceas| |er|eac|a = 1, |erwr|||a = 2, |er/eac|a = 8
'e| ||a\e0e!e\|e = ea|||e.Oea/s!e\|'|ream(|erwr|||a)
Objeto Folder
O objeto Folder instanciado quando so utilizados os
mtodos CreateFolder() ou GetFolder() do objeto
FileSystemObject.
Propriedades Descrio
Attributes Obtm ou define atributos de uma pasta.
DateCreated Data da criao de uma pasta.
DateLastAcessed Data em que a pasta foi acessada pela ltima vez.
DateLastModified Data em que a pasta foi modificada pela ltima
vez.
Drive Retorna a letra do drive onde a pasta reside.
Files Retorna uma coleo de objetos File.
IsRootFolder Booleano. Determina se a pasta a pasta raiz
do volume.
Name Define ou retorna o nome da pasta.
ParentFolder Pasta dentro da qual a pasta atual reside.
Path Caminho completo para a pasta.
ShortName Nome da pasta usando a conveno de
nomenclatura do MS-DOS (8.3).
ShortPath Caminho completo para a pasta usando a
conveno de nomenclatura do MS-DOS.
Size Tamanho do conjunto de todos os arquivos e
subpastas contidos dentro da pasta, em bytes.
SubFolders Retorna uma coleo de objetos Folder contidos
na pasta.
Type Retorna informaes sobre o tipo da pasta.
Mtodos Descrio
Copy Copia uma pasta para outra localizao.
Delete Exclui uma pasta.
Move Move uma pasta para outra localizao.
CreateTextFile Cria um arquivo de texto e retorna um objeto
TextStream.
File8ystemObject
63
Propriedades do objeto Folder
Attributes
Define ou retorna os atributos de uma pasta. Semelhante
propriedade de mesmo nome do objeto File. Alis, os
objetos File e Folder compartilham muitas propriedades
e mtodos.
Set fso = CreateObject(Scripting.FileSystemObject)
Set f = fso.CreateFolder(strNovaPasta)
ou
Set f = fso.GetFolder(strPasta)
intAtributos = f.Attributes
ou
f.Attributes = intAtributos
Parmetro Descrio
0 Arquivo normal. Nenhum atributo definido.
1 Arquivo somente leitura.
2 Arquivo oculto.
4 Arquivo de sistema.
8 Drive de disco.
16 Pasta.
32 Arquivo foi alterado desde o ltimo backup.
64 Atalho.
128 Arquivo comprimido.
DateCreated
Retorna a data e a hora da criao de uma pasta.
Set fso = CreateObject(Scripting.FileSystemObject)
Set f = fso.CreateFolder(strNovaPasta)
ou
Set f = fso.GetFolder(strPasta)
strData = f.DateCreated
DateLastAcessed
Retorna a data e a hora em que uma pasta foi acessada pela
ltima vez.
Set fso = CreateObject(Scripting.FileSystemObject)
Set f = fso.CreateFolder(strNovaPasta)
ou
Set f = fso.GetFolder(strPasta)
strData = f.DateLastAcessed
File8ystemObject
64
DateLastModified
Retorna a data e a hora em que uma pasta foi modificada
pela ltima vez.
Set fso = CreateObject(Scripting.FileSystemObject)
Set f = fso.CreateFolder(strNovaPasta)
ou
Set f = fso.GetFolder(strPasta)
strData = f.DateLastModified
Drive
Retorna a letra do drive onde a pasta reside.
Set fso = CreateObject(Scripting.FileSystemObject)
Set f = fso.CreateFolder(strNovaPasta)
ou
Set f = fso.GetFolder(strPasta)
strLetraDoDrive = f.Drive
Files
Retorna a coleo dos objetos File contidos na pasta.
Set fso = CreateObject(Scripting.FileSystemObject)
Set f = fso.CreateFolder(strNovaPasta)
ou
Set f = fso.GetFolder(strPasta)
Set myFiles = f.Files
IsRootFolder
Retornar True se a pasta em questo for a pasta raiz de um
volume; caso contrrio, retornar False.
Set fso = CreateObject(Scripting.FileSystemObject)
Set f = fso.CreateFolder(strNovaPasta)
ou
Set f = fso.GetFolder(strPasta)
fRetorno = f.IsRootFolder
Name
Define ou obtm o nome de uma pasta.
Set fso = CreateObject(Scripting.FileSystemObject)
Set f = fso.CreateFolder(strNovaPasta)
ou
Set f = fso.GetFolder(strPasta)
strNome = f.Name
ou
f.Name = strNome
File8ystemObject
65
ParentFolder
Retorna a pasta dentro da qual a pasta atual reside.
Set fso = CreateObject(Scripting.FileSystemObject)
Set f = fso.CreateFolder(strNovaPasta)
ou
Set f = fso.GetFolder(strPasta)
strPasta = f.ParentFolder
Path
Retorna o caminho completo para a pasta.
Set fso = CreateObject(Scripting.FileSystemObject)
Set f = fso.CreateFolder(strNovaPasta)
ou
Set f = fso.GetFolder(strPasta)
strCaminho = f.Path
ShortName
Fornece o nome da pasta usando a conveno de
nomenclatura do MS-DOS (8.3).
Set fso = CreateObject(Scripting.FileSystemObject)
Set f = fso.CreateFolder(strNovaPasta)
ou
Set f = fso.GetFolder(strPasta)
strNomeCurto = f.ShortName
ShortPath
Fornece o caminho completo para a pasta usando a
conveno de nomenclatura do MS-DOS (8.3).
Set fso = CreateObject(Scripting.FileSystemObject)
Set f = fso.CreateFolder(strNovaPasta)
ou
Set f = fso.GetFolder(strPasta)
strNomeCurto = f.ShortPath
Size
Retorna o tamanho total, em bytes, do conjunto de arquivos
e subpastas contidos na pasta. Como no caso da propriedade
de mesmo nome do objeto File, se quiser converter para
megabytes, basta dividir o valor retornado por 1024.
Set fso = CreateObject(Scripting.FileSystemObject)
Set f = fso.CreateFolder(strNovaPasta)
Set f = fso.GetFolder(strPasta)
intTamanhoDaPasta = f.Size
File8ystemObject
66
SubFolders
Retorna a coleo Folders com todas as subpastas contidas
na pasta.
Set fso = CreateObject(Scripting.FileSystemObject)
Set f = fso.CreateFolder(strNovaPasta)
ou
Set f = fso.GetFolder(strPasta)
Set mySubFolders = f.SubFolders
Type
Retorna informaes sobre o tipo da pasta.
Set fso = CreateObject(Scripting.FileSystemObject)
Set f = fso.CreateFolder(strNovaPasta)
ou
Set f = fso.GetFolder(strPasta)
strTipoDaPasta = f.Type
Mtodos do objeto Folder
Copy
Copia uma pasta para outra localizao.
Set fso = CreateObject(Scripting.FileSystemObject)
Set f = fso.CreateFolder(strNovaPasta)
ou
Set f = fso.GetFolder(strPasta)
f.Copy destino [,fSubstituir]
Parmetro Descrio
destino Nova localizao da pasta.
fSubstituir Se True, substituir todos os arquivos homnimos
numa pasta na nova localizao que tenha o mesmo
nome da pasta que estiver sendo copiada.
Delete
Exclui uma pasta.
Set fso = CreateObject(Scripting.FileSystemObject)
Set f = fso.CreateFolder(strNovaPasta)
ou
Set f = fso.GetFolder(strPasta)
f.Delete [fForado]
Parmetro Descrio
fForado Booleano. Dever ser True caso a pasta a ser excluda
seja somente leitura.
File8ystemObject
67
Move
Move uma pasta para outra localizao.
Set fso = CreateObject(Scripting.FileSystemObject)
Set f = fso.CreateFolder(strNovaPasta)
ou
Set f = fso.GetFolder(strPasta)
f.Move destino
Parmetro Descrio
destino Nova localizao da pasta.
CreateTextFile
O mtodo CreateTextFile() semelhante ao mtodo de
mesmo nome do objeto FileSytemObject.
Set fso = CreateObject(Scripting.FileSystemObject)
Set f = fso.CreateFolder(strNovaPasta)
ou
Set f = fso.GetFolder(strPasta)
Set ArquivoDeTexto = f.CreateTextFile(strArquivoTexto
[,fSubstituir] [,unicode])
Parmetro Descrio
strArquivoTexto Nome do arquivo de texto.
fSubstituir Se True, substituir um arquivo homnimo pelo
arquivo que estiver sendo criado. Se False, o
arquivo original ser mantido.
unicode Se True, um arquivo Unicode ser criado. Se False
ou omitido, ser criado um arquivo ASCII.
File8ystemObject
68
Objeto TextStream
O objeto TextStream instanciado quando da utilizao de
mtodos dos objetos FileSystemObject, File ou Folder que
criam ou abrem arquivos de texto. Na descrio da sintaxe
e nos exemplos dos mtodos e propriedades do objeto
TextStream, utilizarei o mtodo OpenTextFile() do objeto
FileSystemObject.
Propriedades
AtEndOfLine Booleano. Determina se o final de uma linha foi
atingido.
AtEndOfStream Booleano. Determina se o final de um arquivo de
texto foi atingido.
Column Ponteiro para a coluna atual em um arquivo de
texto.
Line Ponteiro para a linha atual em um arquivo de texto.
Mtodos
Close Fecha um arquivo de texto.
Read L um nmero especfico de caracteres em um
arquivo de texto.
ReadAll L todo o arquivo de texto.
ReadLine L uma linha de um arquivo de texto.
Skip Ignora um determinado nmero de caracteres
quando lendo um arquivo de texto.
SkipLine Ignora toda uma linha quando lendo um arquivo de texto.
Write Escreve uma string num arquivo de texto.
WriteLine Escreve uma string e uma quebra de linha.
WriteBlankLines Escreve linhas em branco num arquivo de texto.
Propriedades do objeto TextStream
AtEndOfLine
Retornar True se o final de uma linha num arquivo de
texto que esteja sendo lido for atingido.
Set fso = CreateObject(Scripting.FileSystemObject)
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set f = fso.OpenTextFile(strArquivo [,intModoDeAbertura]
[,fCriarNovo] [,intFormato])
fRetorno = f.AtEndOfLine
AtEndOfStream
Retornar True se o final de um arquivo de texto que esteja
sendo lido for atingido.
Set fso = CreateObject(Scripting.FileSystemObject)
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set f = fso.OpenTextFile(strArquivo [,intModoDeAbertura]
[,fCriarNovo] [,intFormato])
fRetorno = f.AtEndOfStream
File8ystemObject
69
Column
Retorna um ponteiro para a coluna atual em um arquivo de
texto que esteja sendo lido.
Set fso = CreateObject(Scripting.FileSystemObject)
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set f = fso.OpenTextFile(strArquivo [,intModoDeAbertura]
[,fCriarNovo] [,intFormato])
intColuna = f.Column
Line
Retorna um ponteiro para a linha atual em um arquivo de texto.
Set fso = CreateObject(Scripting.FileSystemObject)
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set f = fso.OpenTextFile(strArquivo [,intModoDeAbertura]
[,fCriarNovo] [,intFormato])
intLinha = f.Line
Mtodos do objeto TextStream
Close
Fecha um arquivo de texto.
Set fso = CreateObject(Scripting.FileSystemObject)
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set f = fso.OpenTextFile(strArquivo [,intModoDeAbertura]
[,fCriarNovo] [,intFormato])
f.Close
Read
L um nmero especfico de caracteres em um arquivo de
texto, retornando a string correspondente.
Set fso = CreateObject(Scripting.FileSystemObject)
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set f = fso.OpenTextFile(strArquivo, ForReading
[,fCriarNovo] [,intFormato])
strRetorno = f.Read(intNmeroDeCaracteres)
Parmetro Descrio
intNmeroDeCaracteres Nmero de caracteres a serem lidos do
arquivo, a partir da posio atual.
Exemplo
|em | cez carac|eres ce ara|.e "c.\\.|\|".
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
Ceas| |er|eac|a = 1, |erwr|||a = 2, |er/eac|a = 8
'e| | = |se.Oea!e\||||e("c.\\.|\|", |er|eac|a)
s|r|e|erae = |.|eac(10)
|.C|ese
wscr||.|c|e s|r|e|erae
File8ystemObject
70
ReadAll
L todo o arquivo de texto, retornando a string
correspondente.
Set fso = CreateObject(Scripting.FileSystemObject)
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set f = fso.OpenTextFile(strArquivo, ForReading
[,fCriarNovo] [,intFormato])
strRetorno = f.ReadAll
Exemplo
|em | |ece e ara|.e "c.\\.|\|".
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
Ceas| |er|eac|a = 1, |erwr|||a = 2, |er/eac|a = 8
'e| | = |se.Oea!e\||||e("c.\\.|\|", |er|eac|a)
s|r|e|erae = |.|eac/||
|.C|ese
wscr||.|c|e s|r|e|erae
ReadLine
L uma linha num arquivo de texto, a partir da linha atual,
retornando a string correspondente e movendo o ponteiro
para a prxima linha.
Set fso = CreateObject(Scripting.FileSystemObject)
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set f = fso.OpenTextFile(strArquivo, ForReading
[,fCriarNovo] [,intFormato])
strRetorno = f.ReadLine
Exemplo
|em | as aa|re r|me|ras ||a|as ce ara|.e "c.\\.|\|".
0|m |
| = 1
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
Ceas| |er|eac|a = 1, |erwr|||a = 2, |er/eac|a = 8
'e| | = |se.Oea!e\||||e("c.\\.|\|", |er|eac|a)
0e w|||e |./||acO|'|ream ~ !rae /ac | = 4
s|r|e|erae = s|r|e|erae |.|eac||ae
| = |1
|ee
|.c|ese
wscr||.|c|e s|r|e|erae
Skip
Ignora um determinado nmero de caracteres quando
lendo um arquivo de texto.
Set fso = CreateObject(Scripting.FileSystemObject)
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set f = fso.OpenTextFile(strArquivo [,intModoDeAbertura]
[,fCriarNovo] [,intFormato])
f.Skip(intNmeroDeCaracteres)
File8ystemObject
71
Parmetro Descrio
intNmeroDeCaracteres Nmero de caracteres a serem ignorados,
a partir da posio atual.
Exemplo
|em | c|ace carac|eres ce ara|.e "c.\\.|\|" a ar||r ce aar|e carac|ere.
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
Ceas| |er|eac|a = 1, |erwr|||a = 2, |er/eac|a = 8
'e| | = |se.Oea!e\||||e("c.\\.|\|", |er|eac|a)
|.'||(?)
s|r|e|erae = |.|eac(5)
|.C|ese
wscr||.|c|e s|r|e|erae
SkipLine
Ignora toda uma linha quando lendo um arquivo de texto.
Set fso = CreateObject(Scripting.FileSystemObject)
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set f = fso.OpenTextFile(strArquivo [,intModoDeAbertura]
[,fCriarNovo] [,intFormato])
f.SkipLine
Exemplo
|em | as |rs r|me|ras ||a|as ce ara|.e "c.\\.|\|", a ar||r ca seaaca.
0|m |
| = 1
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
Ceas| |er|eac|a = 1, |erwr|||a = 2, |er/eac|a = 8
'e| | = |se.Oea!e\||||e("c.\\.|\|", |er|eac|a)
|.'||||ae
0e w|||e |./||acO|'|ream ~ !rae /ac | = ?
s|r|e|erae = s|r|e|erae |.|eac||ae
| = |1
|ee
|.c|ese
wscr||.|c|e s|r|e|erae
Write
Escreve uma string num arquivo de texto.
Set fso = CreateObject(Scripting.FileSystemObject)
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set f = fso.OpenTextFile(strArquivo,
ForWriting|ForAppending [,fCriarNovo]
[,intFormato])
f.Write string
Exemplo
|em |scre.e "O|a maace|" ae ara|.e "c.\\.|\|".
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
Ceas| |er|eac|a = 1, |erwr|||a = 2, |er/eac|a = 8
'e| | = |se.Oea!e\||||e("c.\\.|\|", |erwr|||a)
|.wr||e "O|a maace|"
|.C|ese
File8ystemObject
72
WriteLine
Escreve uma string e uma quebra de linha num arquivo de
texto.
Set fso = CreateObject(Scripting.FileSystemObject)
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set f = fso.OpenTextFile(strArquivo,
ForWriting|ForAppending [,fCriarNovo]
[,intFormato])
f.WriteLine string
Parmetro Descrio
string String a ser escrita no arquivo de texto.
Exemplo
|em |scre.e "O|a maace|" ae ara|.e "c.\\.|\|".
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
Ceas| |er|eac|a = 1, |erwr|||a = 2, |er/eac|a = 8
'e| | = |se.Oea!e\||||e("c.\\.|\|", |erwr|||a)
|.wr||e||ae "O|a maace|"
|.C|ese
WriteBlankLines
Escreve linhas em branco num arquivo de texto.
Set fso = CreateObject(Scripting.FileSystemObject)
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set f = fso.OpenTextFile(strArquivo,
ForWriting|ForAppending [,fCriarNovo]
[,intFormato])
f.WriteBlankLines intNmeroDeLinhas
Parmetro Descrio
intNmeroDeLinhas Nmero de linhas em branco a serem escritas
no arquivo de texto.
Exemplo
|em |scre.e |rs ||a|as em araace ae ||aa| ce ara|.e "c.\\.|\|".
'e| |se = Crea|eOaec|("'cr|||a.|||e',s|emOaec|")
Ceas| |er|eac|a = 1, |erwr|||a = 2, |er/eac|a = 8
'e| | = |se.Oea!e\||||e("c.\\.|\|", |er/eac|a)
|.wr||eb|aa|||aes ?
|.C|ese
File8ystemObject
73
Recursos Avanados
Teoricamente, no h limites para aquilo que os scripts do
WSH podem fazer dentro do ambiente Windows de 32 bits.
Quaisquer recursos do sistema operacional, inclusive aqueles
relacionados ao hardware, podem ser manipulados por um
script do WSH, desde que voc saiba como acess-los.
Nesta seo, farei uma breve explanao sobre as classes
WIN32 e sobre a ADSI.
Classes WIN32
As classes WIN32 expandem enormemente as
funcionalidade de scripts do WSH e de aplicaes que
necessitam de acesso a recursos avanados do sistema
operacional. A maneira mais simples de instanciar um
objeto a partir de uma classe WIN32 :
Set objWIN32 =
GetObject(WinMgmts::Win32_Classe[=ItemRef])
Exemplo
|em |as|aac|a am eae|e ca c|asse w|a?2_'er.|ce |azeace re|erac|a ae ser.|e
Ne||eea.
c|m ea
'e| ea = e|Oaec|("w|a|m|s..w|a?2_'er.|ce='Ne||eea'")
'e|ec| Case ea.'|a|e
Case "'|eec"
ea.'|ar|'er.|ce
msae\ "O ser.|e Ne||eea |e| a||.ace|"
Case "|aaa|a"
msae\ "O ser.|e Ne||eea a es|a a||.e|"
Case ||se msae\ "O s|a|as a|aa| ce ser.|e e " o ea.'|a|e
|ac 'e|ec|
As classes WIN32 dividem-se em quatro categorias, que
por sua vez se compem-se de dezenas de classes com
centenas de propriedades e mtodos a elas associados.
Categorias Descrio
Computer System Hardware Classes que representam objetos
relacionados ao hardware.
Operating System Classes que representam objetos
relacionados ao sistema operacional.
Installed Applications Classes que representam objetos
relacionados ao software instalado.
WMI Service Management Classes utilizadas no gerenciamento
do WMI (Windows Management
Instrumentation).
Informaes completas sobre as classes WIN32, incluindo
uma lista das classes disponveis com uma descrio
detalhada de suas propriedades e mtodos, bem como sobre
a tecnologia WMI, podem ser obtidas no site http://
msdn.microsoft.com/library/toc.asp?PP=/library/toc/psdk/
psdk6.xml&tocPath=psdk6.
Recursos Avanados
74
ADSI
Com o lanamento do Windows 2000, a Microsoft
apresentou ao mundo sua nova implementao de servios
de diretrio: o Active Directory. Servios de diretrio so
servios que o sistema operacional de rede oferece para
permitir a criao, excluso e alterao organizada e
centralizada de objetos da rede, tais como usurios, grupos,
computadores, etc. O Active Directory baseado nas
especificaes da verso 3.0 do protocolo LDAP
(Lightweight Directory Access Protocol). Os
desenvolvedores de scripts podero manipular os objetos
armazenados no diretrio atravs das Active Directory
Service Interfaces (ADSI).
Embora a ADSI tenha sido desenvolvida tendo o Active
Directory em mente (o que compreensvel), tambm
trabalha com outros provedores, a saber:
Windows NT SAM,
NDS e
Netware 3.x.
Exemplo
|em |e|eraaace es asaar|es cea||ces ae rae |eaa| 0ema|a /cm|as ce am
cem|ae ce w|acews N!.
0|m rae, |emare
'e| rae = e|Oaec|("w|aN!.||0em|a|e|0ema|a /cm|as")
|er |ac| |emare |a rae.|emaers
wscr||.ec|e |emare.Name
Ne\|
|em Cr|aace am asaar|e c|amace "ee" em am c|re|er|e ce /c||.e 0|rec|er, e
ce||a|ace a ca|a ce e\|rae ca cea|a ara e c|a 1 ce
|em aae|re ce 2001.
0|m ea, asaar|e
'e| ea = e|Oaec|("|0/|.||OU=/,0C=||crese||,0C=CO|")
'e| asaar|e = ea.Crea|e("aser", "ca=eae")
asaar|e.|a| "sam/cceaa|Name", "eae"
asaar|e./cceaa||\|ra||ea0a|e = "01|01|2001"
asaar|e.'e||a|e
No site http://www.microsoft.com/adsi voc poder obter
maiores informaes sobre a ADSI, bem como baixar a
verso do produto para o Windows NT. Poder obter
tambm a documentao da ADSI em formato HTMLHelp.
Recursos Avanados
75
Scripts de Logon
A utilizao mais evidente e comum para scripts do WSH,
sem sombra de dvidas, em scripts de logon. Scripts de
logon so arquivos executveis (.exe, .com, .bat, etc.) que
so executados assim que um usurio validado por um
domnio do Windows NT ou do Windows 2000.
Normalmente, os scripts de logon so armazenados no
compartilhamento NETLOGON de um controlador de
domnio.
Existem, no entanto, alguns problemas relacionados
utilizao do WSH para essa finalidade. Em primeiro lugar,
apenas as verses de 32 bits do Windows podem executar
scripts do WSH. Isso exclui clientes de rede utilizando o
MS-DOS ou o Windows 3.11. Em segundo, o Windows NT
e o Windows 95 no vm com o WSH instalado por padro.
Por fim, s o Windows 2000 reconhece os arquivos do
WSH (.vbs, .js, .wsf, etc.) como arquivos executveis.
Assim, a menos que voc esteja numa rede onde todos os
servidores e clientes utilizem o Windows 2000, dificilmente
conseguir implantar scripts de logon integralmente
desenvolvidos no WSH. Algumas sadas que poder adotar
so as seguintes:
Se sua rede tiver clientes MS-DOS e Windows 3.11,
crie um arquivo .bat que execute um script de logon em
separado para esses ambientes e o script WSH para os
demais.
Caso tenha mquinas utilizando o Windows 95 ou o
Windows NT, verifique, utilizando o cdigo apropriado
dentro de um script .bat, se os arquivos Wscript.exe e
Cscript.exe existem. Caso no existam, utilize o mesmo
script .bat para iniciar o programa de instalao do
WSH, convenientemente localizado num
compartilhamento da rede.
Uma vez que somente os sistemas operacionais da
famlia Windows 2000 vem os arquivos do WSH
como autnticos executveis, para os outros ambientes
(exceto o MS-DOS e o Windows 3.11, claro) voc
dever usar algo como cscript caminhodoscript
quando estiver configurando scripts de logon para
uma conta de usurio num controlador de domnio
Windows NT ou Windows 2000.
Recursos Avanados
76
Windows Script Components
Os componentes de script do Windows Script Components
(WSC) so a maneira mais fcil de criar componentes COM
para serem utilizados por pginas do Active Server Pages
ou por scripts do WSH.
Um arquivo do WSC nada mais que um arquivo texto com
extenso .wsc que utiliza a XML juntamente com uma
linguagem de script compatvel com a tecnologia ActiveX
(como o VBScript e o JScript) para criar um componente de
script reutilizvel. Para desenvolver um componente de
script, basta um editor de texto simples como o Notepad. No
entanto, no site http://msdn.microsoft.com/scripting
possvel obter gratuitamente um wizard que auxilia no
desenvolvimento de componentes de script do WSC.
Para ser utilizado, um componente de script WSC necessita:
do arquivo scrobj.dll (run-time do WSC) instalado;
de quaisquer arquivos (executveis, bibliotecas, etc.)
requeridos por objetos utilizados no desenvolvimento
do componente; e
que o arquivo .wsc seja registrado (para registr-lo,
clique com o boto direito do mouse sobre o arquivo
.wsc e escolha, no menu suspenso, a opo Register).
Para instanciar um objeto a partir de um componente de
script, utilize a seguinte sintaxe:
Set obj = CreateObject(progID)
O progID definido pela atribuio de uma string varivel
progID entre as tags <registation></registration>.
Abaixo, o esqueleto tpico de um arquivo .wsc onde um
componente de script est sendo difinido:
`/|| .ers|ea="1.0'`~
cemeaea|~
re|s|ra||ea~
cescr|||ea=0escr|e0eCemeaea|e
re|c=re|0
.ers|ea=1erse0eCemeaea|e
c|ass|c=c|s|c
|re|s|ra||ea~
aa||c~
reer|, aame=Neme0eUma|rer|ecace|~
me||ec aame=Neme0eUm|e|ece|~
|aa||c~
scr|| |aaaae="1b'cr||"~
|C0/!/
|aac||ea'aa Neme0eUm|e|ece(|arme|re1],|arme|re2]...,|arme|reN])
Cec|e ce me|ece Neme0eUm|e|ece
|ac |aac||ea|ac 'aa
]]~
|scr||~
|cemeaea|~
Recursos Avanados
77
Informaes mais completas sobre o WSC podem ser
obtidas no site http://msdn.microsoft.com/scripting. Desse
site tambm poder ser baixada a documentao completa
do WSC, em um arquivo no formato HTMLHelp.
Criptografando Scripts do WSH
Voc sabe o que isso a embaixo?
_-0w|///==].-/|101,O0||s|
|Cc,.,80m\mK-Uw,0a\C1-K|C0$,|1w-|1)-a 0O=__o`a0||
w,',|
0|O4a1\'rm||w0rUecsa1a`zc0|r(1\|a__o/U|\-sK."C9|
e||8'|ww.||Or e|- b|sK.)wa
Nr\|-|0__o0|w-|0ccr2
|Ow|'rm=wc\a\r--eK0aa2 N|
|a__o0c.|Oa-1C\0|c-2__ow ,1|
__oe|U///==-_
Trata-se do exemplo de utilizao do mtodo
WriteBlankLines do objeto TextStream criptografado. No
site http://msdn.microsoft.com/scripting voc poder obter,
gratuitamente, o ScriptEncoder.
O ScriptEncoder uma ferramenta simples de linha de
comando que voc pode utilizar para criptografar scripts do
WSH e arquivos ASP e HTML. A sintaxe para utilizar o
ScriptEncoder a seguinte:
SCRENC [/s] [/f] [/xl] [/l strLinguagem ] [/e strExtenso]
strArquivoOriginal strNovoArquivo
Opes Descrio
/s Esta chave determina que o ScriptEncoder no
deve fornecer nenhuma sada na tela.
/f Esta chave determina que strArquivoOriginal
deve ser sobrescrito por strNovoArquivo.
/xl Esta chave especifica que a diretiva @language
do ASP no est no topo do arquivo.
/ l strLinguagem Determina qual a linguagem de script padro.
No precisa ser utilizada com arquivos do WSH,
pois a extenso do arquivo (.vbs ou .js) j
determina por si s qual a linguagem de script
padro.
/e strExtenso Associa a extenso do arquivo strArquivoOriginal
com um tipo definido de arquivo.
strArquivoOriginal Arquivo a ser criptografado.
strNovoArquivo Arquivo critpografado resultante. Salve seus
arquivos .vbs com a extenso .vbe e os arquivos
.js com a extenso .jse, para que o WSH saiba
que so arquivos criptogrados.
Recursos Avanados
78
VBScript
Introduo
O Visual Basic Scripting Edition (VBScript) uma
linguagem de programao em grande parte compatvel
com o Visual Basic que foi desenvolvida pela Microsoft
visando sua utilizao, inicialmente, na Internet. No se
trata de uma linguagem compilada, ou seja, no possvel
gerar executveis a partir do VBScript. Com o VBScript
voc pode:
Desenvolver pginas do Active Server Pages;
Embutir rotinas de programao em pginas HTML; e
Criar scripts do WSH (que o que nos interessa).
Conforme j foi citado anteriormente, os scripts do WSH
escritos em VBScript devem ser salvos com a extenso de
arquivo .vbs. Isso instrui o WSH a chamar o mecanismo de
scripting do VBScript para executar o script. De forma
anloga, quem tem mais intimidade com o JScript deve
salvar os scripts com a extenso de arquivo .js.
No pretendo que este guia seja uma fonte de referncia
completa sobre o VBScript, at porque essa no sua
finalidade. Portanto, abordarei apenas o essencial para que
o leitor seja capaz de implementar scripts do WSH realmente
funcionais fazendo uso do VBScript como linguagem de
programao.
Instrues condicionais
Como a quase totalidade das linguagens de programao, o
VBScript faz uso intensivo de instrues condicionais.
Instrues condicionais so aquelas em que um determinado
fragmento de cdigo s ser executado caso uma expresso
seja avaliada como sendo verdadeira.
Para o leitor que j tiver alguma familiaridade com o Visual
Basic, as instrues condicionais do VBScript so
implementadas da mesma forma.
VB8cript
79
If
A instruo If na sua forma mais simples tem a seguinte
sintaxe:
If expresso then declarao
Quando mais de uma declarao for executada caso a
expresso seja avaliada como verdadeira, usa-se:
If expresso then
Declarao1
Declarao2
...
DeclaraoN
End If
Instrues condicionais If podem ser aninhadas umas dentro
das outras em vrios nveis. Quando aninhar instrues If,
cuidado com as instrues de fechamento End If, que so
uma causa comum de erros de tempo de execuo.
Else
A instruo Else permite que uma ou mais declaraes
sejam executadas caso a expresso avaliada por If seja
falsa.
If expresso then
Declarao1
Declarao2
...
DeclaraoN
Else
DeclaraoElse
End If
Uma variao da construo condicional If... Then... Else
If... Then... ElseIf... Then... Else. No muito usual nem
elegante a sua utilizao.
If expresso1 then
Declarao1
Declarao2
...
DeclaraoN
ElseIf expresso2 then
DeclaraoElseIf
Else
DeclaraoElse
End If
VB8cript
80
Podem ser usados tantos ElseIf quantos o programador
julgar necessrios.
Exemplos
Um e\em|e ce a||||zae ca ceas|rae ceac|c|eaa| ||... !|ea... ||se.
0|m /, \
/ = |aa|be\("|a|re am aamere.")
|| /10 !|ea
\ = "O aamere ae .ec |eraecea e meaer ae 10|"
||se
\ = "O aamere ae .ec |eraecea e ma|er ea |aa| a 10|"
|ac ||
wscr||.|c|e \
Um e\em|e ce a||||zae ce ||s aa|a|aces.
0|m /, \
/ = |aa|be\("|a|re am aamere.")
|| / |ec 2=0 ||ea
|| /10 ||ea
\="O aamere ae .ec |eraecea e ar e meaer ae 10|"
||se
\="O aamere ae .ec |eraecea e ar e ma|er ea |aa| a 10|"
|ac ||
||se
|| /10 ||ea
\="O aamere ae .ec |eraecea e |mar e meaer ae 10|"
||se
\="O aamere ae .ec |eraecea e |mar e ma|er ae 10|"
|ac ||
|ac ||
wscr||.|c|e \
Select Case
Uma alternativa ao uso do ElseIf, que bem mais legvel e
elegante, a instruo Select Case.
A sintaxe para a instruo Select Case a seguinte:
Select Case varivel
Case Valor1
Declarao 1
Case Valor2
Declarao2
Case Valor3
Declarao3
Case ValorN
DeclaraoN
Case Else
DeclaraoElse
End Select
VB8cript
81
Exemplo
Um e\em|e ce a||||zae ca |as|rae 'e|ec| Case.
0|m s|r|s|ace, s|r|s
s|r|s|ace=|aa|be\("|a|re e aeme ce |s|ace em ae .ec aascea.")
'e|ec| Case s|r|s|ace
Case "||aas era|s"
s|r|s="||ae|res se semre aem-.|aces|"
Case "'e |aa|e"
s|r|s="|aa||s|as se semre aem-.|aces|"
Case "||e ce aae|re"
s|r|s="Car|ecas se semre aem-.|aces|"
Case "ba||a"
s|r|s="ba|aaes se semre aem-.|aces|"
Case "||e raace ce 'a|"
s|r|s="aac|es se semre aem-.|aces|"
Case ||se
s|r|s="Ne |mer|a ce eace .ec .ea|a, sera semre
aem-.|ace|"
|ac 'e|ec|
wscr||.|c|e s|r|s
Loops
Outro tipo de instruo bastante popular em praticamente
todas as linguagens de programao (e o VBScript no foge
regra) so os Loops. As instrues de Loop repetem a
execuo de uma ou mais declaraes um determinado
nmero de vezes.
For
A instruo For a instruo de loop mais usada.
For Varivel=ValorInicial To ValorFinal [Step step]
Declaraes
Next
A instruo opcional Step determina de quanto a varivel
ser incrementada cada vez que o lao for executado.
Exemplos
Cea|aace ce 1 a|e 10 asaace am |ae |er.
0|m /, \(9), s|r|s
|er /=1 !e 10
\(/-1)=/
s|r|s = s|r|s o c|r(10) o \(/-1)
Ne\|
wscr||.|c|e s|r|s
Cea|aace es aameres |mares ce 1 a|e 25.
0|m /, \(25), s|r|s
|er /=1 !e 25 '|e 2
\(/-1)=/
s|r|s = s|r|s o c|r(10) o \(/-1)
Ne\|
wscr||.|c|e s|r|s
VB8cript
82
While... Wend
A construo While... Wend utilizada quando no se tem
certeza do nmero de vezes que o loop ser executado.
While Expresso
Declaraes
Wend
Como a expresso avaliada antes que o loop seja executado
pela primeira vez, caso ela seja falsa, as declaraes no
corpo do loop While... Wend podem nunca ser executadas.
Do... Loop
A construo Do... Loop pode ser implementada de vrias
formas, como demonstrado a seguir:
Do While Expresso
Declaraes
Loop
Esta primeira forma ser executada enquanto a expresso
avaliada for verdadeira.
Do
Declaraes
Loop While Expresso
Esta segunda forma em quase tudo semelhante anterior,
s que executar pelo menos uma vez, mesmo que a expresso
avaliada seja falsa logo na primeira iterao do lao.
Do Until Expresso
Declaraes
Loop
Funciona de maneira anloga construo Do While...
Loop, s que as declaraes s sero executadas enquanto
a expresso for falsa.
Do
Declaraes
Loop Until Expresso
semelhante construo Do... Loop While, s que as
declaraes, aps serem executadas pelo menos uma vez, s
continuaro a ser executadas caso a expresso avaliada seja
falsa.
VB8cript
83
Exit
A instruo Exit, atravs das suas variaes (Exit Do, Exit
For), fora a sada prematura de um loop.
Exemplos
Um e\em|e ce 0e w|||e... |ee cem |\|| 0e.
0|m /, s|r|s
0e w|||e / 10
/ = /1
|| /=1 ||ea
|\|| 0e
||se
s|r|s = s|r|s o c|r(10) o "O|a, maace|"
|ac ||
|ee
wscr||.|c|e s|r|s
For Each
Um tipo de instruo de loop especial do VBScript a For
Each. Permite enumerar todos os elementos de uma coleo.
For Each Elemento In Coleo
Declaraes
Next
Dentro do WSH, como j tivemos a oportunidade de ver,
existem muitas colees e o For Each pode ser bastante til.
Sub-Rotinas e Funes
Assim como no seu irmo mais velho, o Visual Basic, a
principal tarefa de programao no mbito do VBScript o
desenvolvimento de sub-rotinas e funes.
Sub-Rotinas
Sub-rotinas so blocos de cdigo contidos entre as instrues
Sub... End Sub. Podem ou no receber parmetros e no
retornam valores. A sintaxe de uma sub-rotina :
Sub NomeDaSubRotina([Parmetro1], [Parmetro2],...
[ParmetroN])
Declaraes
End Sub
Uma nota importante que os procedimentos Sub devem
ser chamados dentro do cdigo VBScript sem os parnteses.
Exemplo
'aa |easaem(s|r|easaem)
wscr||.|c|e s|r|easaem
|ac 'aa
0|m s|r|s
s|r|s=|aa|be\("|a|re ama measaem.")
|easaem s|r|s.
VB8cript
84
Funes
Funes so blocos de cdigo contidos dentro das instrues
Function... End Function. Como as sub-rotinas, as funes
podem ou no ter parmetros. A principal diferena entre
elas que as funes retornam valores e devem ser chamadas
no cdigo VBScript com os parnteses. A sintaxe para
definio de uma funo :
Function NomeDaFuno([Parmetro1], [Parmetro2],...
[ParmetroN])
Declaraes
End Function
Exemplo
|aac||ea |easaem()
|easaem=|aa|be\("|a|re ama measaem.")
|ac |aac||ea
wscr||.|c|e |easaem()
Operadores
Uma das principais funcionalidades de uma linguagem de
programao a disponibilizao de operadores, visto que
so eles que permitem a construo de expresses.
Os operadores fornecidos pelo VBScript so:
Operadores Significado
+ Adio de duas ou mais expresses numricas ou
concatenao de strings.
- Subtrao de uma expresso numrica de outra.
* Multiplicao de duas ou mais expresses numricas.
/ Diviso de uma expresso numrica pela outra.
^ Exponenciao.
= Igualdade.
\ Diviso de inteiros sem parte fracionria.
Mod Retorna o resto da diviso entre dois nmeros inteiros.
And Retornar verdadeiro se ambos os valores utilizados
forem verdadeiros.
Or Retornar verdadeiro se pelo menos um dos valores
utilizados for verdadeiro.
Xor Retornar verdadeiro se apenas um dos valores
utilizados for verdadeiro.
Imp Implicao.
Eqv Equivalncia.
<> Diferente de.
> Maior que.
< Menor que.
>= Maior ou igual a.
<= Menor ou igual a.
& Concatenao de strings.
VB8cript
85
Tipos de Dados
O VBScript, ao contrrio do Visual Basic, no permite a
definio explcita do tipo de dado que uma varivel poder
conter quando da sua declarao, ou seja, todas as variveis
so declaradas obrigatoriamente como do tipo Variant.
Entretanto, o VBScript suporta grande variedade de subtipos
de dados e qual subtipo de dado ser atribudo a uma
varivel algo que ser definido no contexto em que essa
varivel estiver sendo utilizada ou pelo uso de funes de
converso, tais como CInt(), CStr()ou CDate(), por exemplo.
Subtipo Prefixo Usual Descrio
Boolean f, b ou boo Valor lgico, que pode ser True ou False.
Byte Inteiro sem sinal entre 0 e 255.
Integer int Inteiro com sinal entre 32.768 e 32.767.
Long lng Inteiro com sinal entre 2.147.483.648 e
2.147.483.647.
Single Nmero fracionrio de ponto flutuante
entre 3,402823E38 e 1,401298E-45
para valores negativos e entre
1,401298E-45 e 3,402823E38 para
valores positivos.
Double dbl Nmero fracionrio de ponto flutuante
entre 4,94065645841247E-324 e
1,79769313486232E308 para valores
negati vos e entre
1,79769313486232E308 e
4,94065645841247E-324 para valores
positivos.
Currency cur Valores monetrios.
Date d Valores de datas.
Object obj Objeto.
String str String (texto) de at aproximadamente
dois bilhes de caracteres.
Outras instrues do VBScript
Existem ainda algumas instrues que no mencionei e que
so muito importantes:
Instrues Significado
Dim Declara uma varivel. Utilize-a sempre, para no
se perder em seu prprio cdigo.
Option Explicit Faz com que todas as variveis sejam declaradas.
Erase Apaga o contedo de uma matriz.
Preserve Copia o contedo de uma matriz dinmica para outra
matriz dinmica que tenha sido redimensionada.
Redim Redimensiona uma matriz dinmica.
Set Atribui um objeto a uma varivel.
On Error Usada em conjunto com Resume Next para o
tratamento de erros.
Call Chama um procedimento.
Rem Insere uma linha de comentrio.
VB8cript
86
Funes, constantes e objetos do
VBScript
O VBScript fornece inmeras funes e constantes e alguns
objetos, tantos que seria necessrio um outro guia
exclusivamente para enumer-los e descrev-los. Abaixo,
os mais utilizados:
Funes
Asc Retorna o cdigo ASCII de um caractere. Sintaxe:
Asc(string).
CBool Converte seu parmetro para o subtipo Boolean.
Sintaxe: CBool(expresso).
CByte Converte seu parmetro para o subtipo Byte. Sintaxe:
CByte(expresso).
CDate Converte seu parmetro para o subtipo Date. Sintaxe:
CDatel(expresso).
CInt Converte seu parmetro para o subtipo Integer. Sintaxe:
CInt(expresso).
CStr Converte seu parmetro para o subtipo String. Sintaxe:
CStr(expresso).
Chr Retorna o caractere correspondente a um determinado
cdigo ASCII. Sintaxe: Chr(nmero).
Date Retorna a data atual do sistema. Sintaxe: Date().
InputBox Exibe uma caixa de dilogo solicitando ao usurio a
entrada de dados. Sintaxe: InputBox(Mensagem
[,ttulo][,valor][,x][,y]).
Left Retorna os caracteres x mais esquerda. Sintaxe:
Left(string, x).
Len Retorna o tamanho de uma string. Sintaxe: Len(string).
MsgBox Apresenta uma caixa de dilogo com informaes.
Sintaxe: MsgBox(Mensagem[,definio][,ttulo]).
Now Retorna a data e a hora atuais do sistema. Sintaxe:
Now().
Right Retorna os caracteres x mais direita. Sintaxe:
Right(string, x).
Time Retorna a hora atual do sistema. Sintaxe: Time().
Trim Elimina todos os espaos em branco antes e depois da
string. Sintaxe: Trim(string).
Constantes/Literais
Empty Declara um valor para uma varivel que ainda no foi
inicializada.
Nothing Elimina a atribuio de um objeto a uma varivel.
Null Usada na atribuio de valores nulos a variveis.
True/False Usadas em expresses booleanas.
Objetos
Err Objeto utilizado no tratamento de erros.
RegExp Objeto que permite executar uma expresso regular.
VB8cript
87
Objeto Err
O objeto Err contm informaes sobre erros de tempo de
execuo (run-time). Aceita os mtodos Raise e Clear
para criar e desativar erros run-time. No necessrio
criar uma instncia para objeto Err.
No exemplo abaixo verificado o valor da propriedade
Number e, se ela contiver um valor diferente de zero,
exibir os detalhes numa caixa de mensagem.
0|m |a|Namere0e|rre, s|r0esc0e|rre
Oa |rrer |esame Ne\|
|rr.|a|se
|a|Namere0e|rre = |rr.aamaer
s|r0esc0e|rre = |rr.cescr|||ea
|| |a|Namere0e|rre ~ 0 !|ea
wscr||.|c|e "Ocerrea am erre| |rre aamere " o |a|Namere0e|rre o " ce ||e '"
o s|r0esc0e|rre o "'."
|ac ||
Mtodos do objeto Err
Clear
Define todas as propriedades de um objeto Err para os
valores padro, por exemplo, definindo a propriedade
Number como 0 (zero).
Err.Clear
Raise
Permite simular um erro de run-time.
Err.Raise (nmero [,fonte] [,descrio]
[,arqhelp][,contexto])
Argumento Descrio
nmero Natureza do erro.
fonte Objeto ou aplicao que originalmente gerou o erro.
descrio Descrio do erro.
arqhelp Localizao do arquivo Help no qual a ajuda para esse
erro pode ser encontrada.
contexto Identifica o tpico dentro do arquivo Help que fornece
ajuda para o erro.
Propriedades do objeto Err
Description
Define ou retorna uma string que descreve o erro.
Err.Description [ = string]
Number
Define ou retorna um valor numrico que identifica o erro.
Err.Number [ = nmerro]
VB8cript
88
Source
Retorna ou define o nome do objeto ou da aplicao que
originalmente gerou o erro.
Err.Source [=nomeaplic]
Argumento Descrio
nomeaplic Nome da aplicao.
HelpContext
Define ou retorna o nmero de contexto para um tpico no
arquivo Help.
Err.HelpContext [=contextoID ]
Argumento Descrio
contextoID Identificador de um tpico de ajuda no arquivo Help.
HelpFile
Define ou retorna o path para um arquivo Help, que
acionado quando o usurio clica no boto Help ou pressiona
a tecla F1 na caixa de dilogo de uma mensagem de erro.
Err.HelpFile [=strCaminho]
Argumento Descrio
strCaminho Localizao do arquivo Help.
Objeto RegExp
O objeto RegExp usado para criar e executar uma
expresso regular, a qual permite pesquisar uma seqncia
de caracteres em uma string.
Um objeto Match criado cada vez que o objeto RegExp
encontra uma correspondncia (match). Zero ou mais
correspondncias (matches) podero ocorrer e o objeto
RegExp retornar uma coleo Matches de objetos
Match.
Exemplo
s|r/|.e = "O ra|e reea a reaa ce re| ce |ema"
'e| ea|e|\ = New |e|\
ea|e|\.|a||era = "r"
ea|e|\.|aereCase = |a|se
ea|e|\.|eaa| = !rae
'e| ce||a|c|es = ea|e|\.|\eca|e(s|r/|.e)
|er |ac| |a|c| |a ce||a|c|es
wscr||.|c|e "Cerreseacac|a eacea|raca em " o |a|c|.||rs||ace\ o ". "
wscr||.|c|e "1a|er eacea|race e '" o |a|c|.1a|ae o "." o c|r(10)
Ne\|
VB8cript
89
Mtodos do objeto RegExp
Execute
Executa a busca de uma expresso regular em uma string,
retornando uma coleo Matches contendo um objeto
Match para cada correspondncia (match) encontrada. A
propriedade Pattern deve ter sido especificada
previamente com a expresso regular. Sintaxe:
Set objRegExp = New RegExp
objRegExp.Execute(string)
Replace
Executa a busca de uma expresso regular em uma string
original (str1), substituindo cada correspondncia (match)
encontrada por uma outro string (str2). Se nenhuma
correspondncia for encontrada, retornar a string original.
Set objRegExp = New RegExp
objRegExp.Replace (str1, str2)
Test
Executa a busca de uma expresso regular em uma string
e retorna um valor Booleano True ou False, indicando se
a expresso regular foi encontrada.
Set objRegExp = New RegExp
objRegExp.Test(string)
Propriedades do objeto RegExp
Global
Retorna ou define um valor boleano, que indica se devem
ser procuradas todas as ocorrncias (True) da expresso
regular ou somente a primeira ocorrncia (False) em uma
string.
Set objRegExp = New RegExp
objRegExp.Global = True | False
IgnoreCase
Define ou retorna um valor boleano que determina se a
expresso regular distingue (False) ou no (True)
minsculas de maisculas.
Set objRegExp = New RegExp
objRegExp.IgnoreCase = True | False
VB8cript
90
Pattern
Define ou retorna uma string contendo a expresso regular.
Deve ser especificada antes do objeto RegExp ser utilizado.
Mais informaes podem ser obtidas em http://
msdn.microsoft.com/workshop/languages/clinic/
scripting051099.asp ou em http://www.oreilly/catalog/
regexp/.
Set objRegExp = New RegExp
objRegExp.Pattern [=expr_regular]
Coleo Matches
uma coleo criada pelo mtodo Execute do objeto
RegExp, contendo objetos Match que so criados para
cada correspondncia (match) encontrada da expresso
regular em uma string.
Objeto Match
O objeto Match criado toda vez que o mtodo Execute
do objeto RegExp encontra uma correspondncia (match)
da expresso regular em uma string. Armazena em suas
propriedades os detalhes de cada correspondncia (match)
encontrada na pesquisa.
Propriedades do objeto Match
FirstIndex
Retorna a posio (a partir de 0) dentro da string onde
ocorreu a correspondncia (match) com a expresso
regular.
objMatch.FirstIndex
Length
Retorna o tamanho do texto encontrado na pesquisa da
expresso regular.
objMatch.Length
Value
Retorna o valor ou o texto encontrado na pesquisa da
expresso regular.
objMatch.Value
VB8cript
91
Smbolos usados em Expresses
Smbolo Funo
^ Somente localiza (match) no incio de uma string.
Por exemplo: ^P localiza o primeiro P em Pedro
pegou o pato.
$ Somente localiza (match) no final de uma string.
Por exemplo: a expresso o$ localiza o ltimo o em
Pedro pegou o pato.
\b Localiza qualquer final de palavra.
Por exemplo: mente\b localiza em possivelmente
amanh.
\B Localiza qualquer coisa que no seja final de palavra.
literal Localiza o literal especificado.
\n Localiza o caractere new line
\f Localiza o caractere form feed
\r Localiza o caractere carriage return
\t Localiza o caractere tab horizontal
\v Localiza o caractere tab vertical
\? Localiza o caractere ?
\* Localiza o caractere *
\+ Localiza o caractere +
\. Localiza o caractere .
\| Localiza o caractere |
\{ Localiza o caractere {
\} Localiza o caractere }
\\ Localiza o caractere \
\[ Localiza o caractere [
\] Localiza o caractere ]
\( Localiza o caractere (
\) Localiza o caractere )
\xxx Localiza o caractere ASCII expresso pelo nmero octal
xxx.
Por exemplo: \50" localiza ( ou chr (40).
\xdd Localiza o caractere ASCII expresso pelo nmero
hexa dd.
Por exemplo: \x28" localiza ( ou chr (40).
\uxxxx Localiza o caractere ASCII expresso pelo cdigo
Unicode xxxx.
Por exemplo: \u00A3" localiza .
[a-z] Localiza qualquer caractere no intervalo especificado.
Por exemplo: a expresso [a-c] localiza a, bou c.
[xyz] Localiza qualquer caractere especificado em [ ].
Por exemplo: col[iu]na localiza colina e coluna.
[^xyz] Localiza qualquer caractere que no esteja em [ ].
Por exemplo: dr[^o]ga localiza qualquer combinao,
exceto droga.
. Localiza qualquer caractere exceto \n.
Por exemplo: a expresso a.b localiza aab e a3b,
mas no ab.
\w Localiza letras e dgitos. Equivale a [a-zA-Z_0-9].
\W Localiza qualquer caractere que no seja letra ou
dgito. Equivale a [^a-zA-Z_0-9].
VB8cript
92
\d Localiza qualquer dgito. Equivale a [0-9].
\D Localiza qualquer no-dgito. Equivale a [^0-9].
\s Localiza qualquer caractere espao. Equivale a
[ \t\r\n\v\f].
\S Localiza qualquer caractere diferente de espao.
Equivale a [^\t\r\n\v\f].
{x} Localiza exatamente x ocorrncias de uma expresso
regular.
Por exemplo: a{3} equivale a aaa.
(x,} Localiza x ou mais ocorrncias de uma expresso
regular. Por exemplo: \s{2,} localiza pelo menos 2
caracteres espao.
{x,y} Localiza entre x e y ocorrncias de uma expresso
regular.
Por exemplo: \d{2,3} localiza pelo menos 2, mas no
mais que 3 dgitos.
? Localiza zero ou uma ocorrncia do caractere
precedente. Equivale a {0,1}.
Por exemplo: a expresso casas? localiza ambos
casa e casas.
* Localiza zero ou mais ocorrncias do caractere
precedente. Equivale a {0,}.
Por exemplo: a expresso fo* localiza ambos f e
foo.
+ Localiza uma ou mais ocorrncias do caractere
precedente. Equivale a {1,}.
Por exemplo: a expresso fo+ localiza foo mas no
f.
() Agrupa uma clusula para criar uma nova clusula.
Pode ser aninhada.
Por exemplo: (ab)?(c) localiza abc or c.
| Localiza qualquer uma das clusulas individuais.
Por exemplo: a expresso a|b localiza a ou b:.
VB8cript
93
Informaes Adicionais
Sobre o Autor
Roberto Gomes de Aguiar Veiga natural de Belo Horizonte,
Minas Gerais, cidade onde reside. Trabalha como Tcnico
de Informtica no Servio Federal de Processamento de
Dados (Serpro), empresa pblica da rea de informtica
vinculada ao Ministrio da Fazenda. Est lotado atualmente
no Centro de Especializao BackOffice da
Superintendncia de Atendimento a Clientes do Serpro.
Dentre suas qualificaes, as mais importantes so a de
Microsoft Certified Systems Engineer (MCSE) e Microsoft
Certified Professional + Internet (MCP + Internet).
O autor pode ser contatado atravs do e-mail
raveiga@yahoo.com.
Sobre Este Guia
Este guia busca ser uma obra de referncia sucinta sobre um
assunto sobre o qual no h ttulos disponveis nas livrarias.
incrvel como o mercado editorial brasileiro, na rea de
informtica, restringe-se a alguns poucos assuntos. Eu
conheo pelo menos uma centena de livros sobre Windows
e Visual Basic e dzias de livros sobre Linux e Delphi, mas
no conheo nenhum outro, em lngua portuguesa, sobre o
WSH que no este modesto guia.
Quando decidiu adquirir este guia, provavelmente o que o
motivou foi o fato de que, assim como eu, voc tambm
acredita no grande potencial do WSH dentro das redes
empresariais baseadas na plataforma Windows. Acredito
que o WSH v se tornar to importante para o Windows
quanto o ASP importante para o Internet Information
Server, por isso me dediquei tanto ao seu aprendizado.
Acho que o leitor tambm far o mesmo e que este guia lhe
ser bastante til!
nformaes Adicionais
94
Palavra Final do Autor
Para os profissionais que decidiram dedicar suas vidas
informtica, o que vou dizer agora pode at parecer lugar
comum: manter-se atualizado em novas tecnologias uma
questo de continuar ou no valioso para o mercado de
trabalho e de continuar empregado tambm! Portanto,
espero que o leitor, como profissional de informtica que ,
no veja este guia como algo definitivo sobre WSH. Consulte
principalmente os sites que indiquei ao longo deste guia em
busca de novidades. Eu lhes asseguro, elas existiro sempre.
Crticas e sugestes sero bem-vindas (todo mundo sempre
diz isso!) e podem ser enviadas ao e-mail informado abaixo.
Por fim, espero sinceramente que este guia auxilie voc,
meu caro leitor, nas suas tarefas cotidianas. Acredite em
mim, foi isso que me motivou a escrev-lo.
Um grande abrao,
O Autor.
Notao utilizada neste Guia
Notao Significado
opo1 | opo2 ... Barras verticais separam itens alternativos
em uma lista.
[ ] Identifica valores opcionais que podem ou
no ser fornecidos pelo usurio. Digite
somente a informao dentro dos parnteses;
no digite os parnteses.
itlico Identifica um valor que deve ser fornecido
pelo usurio.
negrito Identifica palavras reservadas.
Comentrios e Sugestes
Comentrios e sugestes sobre este guia sero bastante
apreciados. Podem ser enviados para o e-mail:
leitor@novateceditora.com.br
Conhea o site da Novatec Editora em:
www.novateceditora.com.br
nformaes Adicionais
95
ndice
Smbolos
.WSF 10
.WSH 9
<![CDATA[...]]> 11, 15
<?job ?> 11
<?XML ?> 11
<job> 11, 12
<object> 11, 12
<package> 11, 13
<reference> 11, 13
<resource> 11, 14
<script> 11, 14
A
Add 43, 44
AddPrinterConnection 31, 32
AddWindowsPrinterConnection 31, 33
ADSI 74
AppActivate 22, 24
Application 16, 17
Arguments 16, 17, 38
Arquivos .WSF 10
Arquivos .WSH 9
Asc 86
ASP 5
AtEndOfLine 68
AtEndOfStream 68
Attributes 58, 62, 63
AvailableSpace 55
B
BuildPath 46, 47
BuildVersion 16, 17
C
Call 85
CBool 86
CByte 86
CDate 86
Chr 86
CInt 86
Clear 87
Close 68, 69
Column 68, 69
CompareMode 43, 44
ComputerName 31
COMSPEC 23, 37
ConnectObject 19
Copy 58, 60, 62, 66
CopyFile 46, 48
CopyFolder 46, 48
Count 21, 22, 35, 36, 37, 40, 41, 43, 44
CreateFolder 46, 48
CreateObject 16, 19
CreateShortcut 22, 25
CreateTextFile 46, 49, 62, 67
Criptografando Scripts 16
CScript 8
CScript.exe 8
CStr 86
D
Date 86
DateCreated 58, 59, 62, 63
DateLastAcessed 58, 59, 62, 63
DateLastModified 58, 59, 62, 64
Delete 58, 61, 62, 66
DeleteFile 46, 49
DeleteFolder 46, 49
Description 38, 87
Dictionary 43
Dim 85
DisconnectObject 16, 20
Do... Loop 82
Drive 46, 55, 58, 59, 62, 64
DriveExists 46, 50
DriveLetter 55, 56
Drives 46, 47
DriveType 55, 56
E
Echo 16, 20
Elementos XML 10
Else 79
Empty 86
EnumNetworkDrives 31, 33
EnumPrinterConnections 31, 33
Environment 22, 23
Erase 85
Err 86, 87
Execute 89
Exists 43, 45
Exit 83
ExpandEnvironmentStrings 22, 25
F
False 86
File 46, 58
FileExists 46, 50
Files 46, 62, 64
FileSystem 55, 56
FileSystemObject 46
FirstIndex 90
Folder 46, 62
FolderExists 47, 50
Folders 46
For 81
For Each 83
FreeSpace 55, 56
FullName 16, 17, 38, 39, 42
Funes 84
G
GetAbsolutePathName 47, 51
GetBaseName 47, 51
GetDrive 47, 52
GetDriveName 47, 52
GetExtensionName 47, 52
GetFile 47, 52
GetFileName 47, 52
GetFolder 47, 53
GetObject 16, 20
GetParentFolderName 47, 53
GetSpecialFolder 47, 53
GetTempName 47, 53
Global 89
H
HelpContext 88
HelpFile 88
HOMEDRIVE 23, 37
HOMEPATH 23, 37
HotKey 38, 39
I
IconLocation 38, 39
If 79
IgnoreCase 89
InputBox 86
Interactive 16, 17
IsReady 55, 56
IsRootFolder 62, 64
Item 21, 35, 36, 40, 41, 43, 44
Items 43, 45
K
Key 43, 44
Keys 43, 45
96
ndice
L
Left 86
Len 86
lenght 21, 22, 35, 36, 37, 40, 41
Length 90
Line 68, 69
LogEvent 22, 25
Loops 81
M
MapNetworkDrive 31, 33
Match 90
Matches 90
Move 58, 61, 62, 67
MoveFile 47, 54
MoveFolder 47, 54
MsgBox 86
N
Name 16, 18, 58, 59, 62, 64
Nothing 86
Now 86
Null 86
Number 87
NUMBER_OF_PROCESSORS 23, 37
O
Objeto Wscript 16
Objetos do WSH 16
On Error 85
OpenAsTextStream 58, 61
OpenTextFile 47, 54
Operadores 84
Option Explicit 85
OS 23, 37
P
ParentFolder 58, 59, 62, 65
PATH 23, 37
Path 16, 18, 55, 57, 58, 59, 62, 65
PATHEXT 23, 37
Pattern 90
Popup 22, 26
Preserve 85
PROCESSOR_ARCHITECTURE 23, 37
PROCESSOR_IDENTIFIER 23, 37
PROCESSOR_LEVEL 23, 37
PROCESSOR_REVISION 23, 37
PROMPT 23, 37
Q
Quit 16, 20
R
Raise 87
Read 68, 69
ReadAll 68, 70
ReadLine 68, 70
Redim 85
RegDelete 22, 27
RegExp 86, 88
RegRead 22, 27
RegWrite 22, 28
Rem 85
Remove 36, 37, 43, 45
RemoveAll 43, 45
RemoveNetworkDrive 31, 34
RemovePrinterConnection 31, 34
Replace 89
Right 86
RootFolder 55, 57
Run 22, 28
S
Save 38, 40, 42
ScriptEncoder 77
ScriptFullName 16, 18
ScriptName 16, 18
Scripts de Logon 75
Select Case 80
SendKeys 22, 29
SerialNumber 55, 57
Set 85
SetDefaultPrinter 31, 35
ShareName 55, 57
ShortName 58, 60, 62, 65
ShortPath 58, 60, 62, 65
Size 58, 60, 62, 65
Skip 68, 70
SkipLine 68, 71
Sleep 16, 21
Source 88
SpecialFolders 22, 24
StdErr 16, 18, 19
StdIn 16, 18
StdOut 16
Sub-Rotinas 83
SubFolders 62, 66
SYSTEMDRIVE 23, 37
SYSTEMROOT 23, 37
T
TargetPath 38, 39, 42
TEMP 23, 37
Test 89
TextStream 46, 68
Time 86
TimeOut 16, 19
TMP 23, 37
TotalSize 55, 57
Trim 86
Type 58, 60, 66
U
UserDomain 31, 32
UserName 31, 32
V
Value 90
VBScript 78
Version 16, 19
VolumeName 55, 57
W
While... Wend 82
WIN32 73
WINDIR 23, 37
Windows Script Components 76
WindowsStyle 38
WindowStyle 39
WorkingDirectory 38, 40
Write 68, 71
WriteBlankLines 68, 72
WriteLine 68, 72
WScript 8
WScript.exe 8
WshArguments 21
WshCollection 35
WshEnvironment 36
WshNetwork 31
WshShell 22
WshShortcut 38
WshSpecialFolders 40
WshURLShortcut 41
X
XML 10

Você também pode gostar