WSCript

Embed Size (px)

Citation preview

Guia de Consulta Rpida

Windows Script HostRoberto G. A. Veiga

Novatec Editorawww.novateceditora.com.br

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: [email protected] Site: www.novateceditora.com.br

Marcas registradasMicrosoft, 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.

2

Sumrio

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 ................................................... 933

4

Introduo

IntroduoO 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:ExemploRem Exibe a frase Al, mundo!. Para test-lo, salve como um arquivo com extenso .vbs e depois execute-o: Wscript.Echo Al, mundo!

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.

5

Introduo

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.

6

Introduo

InstalaoO 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.

7

Executando um script WSH

Executando um script WSHExistem duas maneiras de executar um script WSH:

Utilizando o WScriptO 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 CScriptO 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 opes //I //B

Descrio

Habilita o modo interativo. 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: Executa o JobID especificado em um arquivo .wsf. script Nome do arquivo script. parmetros Parmetros passados ao script. Devem ser precedidos por uma barra (/). ExemploExecuta o script chamado x.vbs com o parmetro //nologo e habilitando o depurador: C:\>cscript //nologo //D x.vbs

8

Arquivos .WSH

Arquivos .WSHOs 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:[ScriptFile] Path=C:\x.vbs [Options] Timeout=0 DisplayLogo=1 BatchMode=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.

9

Elementos XML

Utilizao de Elementos XMLA 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 .WSFOs 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: WScript.Echo Ol mundo!

11

Elementos XML

Define um job dentro de um arquivo .wsf. Um job uma tarefa a ser executada quando o script for chamado.

Cdigo a ser executado

Parmetro id

Descrio Nome pelo qual ser feita referncia ao job dentro do script e atravs do qual poder ser executado a partir da linha de comando.

ExemploUtilizao da tag para definir mais de um job dentro de um arquivo .wsf: . ]]>

12

Elementos XML

Permite que haja mltiplos jobs dentro de um mesmo arquivo .wsf. A utilizao de package opcional quando h apenas um job no script.

Jobs

ExemploUtilizao da tag em um arquivo .wsf com vrios jobs:

15

Objetos do WSH

Objetos do WSHUm 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 WscriptO 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 CLSID Propriedades Application Arguments BuildVersion FullName Interactive Fornece a interface IDispatch para o objeto Wscript. Argumentos passados na linha de comando. Retorna a build version do arquivo executvel do WSH. Caminho completo para o executvel WSH. Se True, o script ser executado em modo interativo, caso False, o script ser executado em segundo plano. Nome amigvel do objeto Wscript (propriedade padro). Nome da pasta onde reside o executvel do WSH. Caminho completo para o script que est sendo executado pelo WSH. Nome do arquivo de script que est sendo executado pelo WSH. Retorna o fluxo de erro padro. Retorna o fluxo de entrada padro. Retorna o fluxo de sada padro. Especifica o tempo mximo em que o script poder ser executado. Uma string contendo a verso do WSH. Cria e estabelece uma conexo com um objeto. Disconecta um objeto previamente conectado. Exibe uma caixa de mensagem. Retorna um objeto de automao de arquivo. Termina a execuo do script com um cdigo de erro especfico. Interrompe a execuo do script durante um perodo de tempo determinado. N/A. 60254CA2-953b-11CF-8C96-00AA00B8708C.

Name Path ScriptFullName ScriptName StdErr StdIn StdOut TimeOut Version Mtodos CreateObject DisconnectObject Echo GetObject Quit Sleep 16

Objetos do WSH

Propriedades do objeto Wscript ApplicationFornece a interface IDispatch para o objeto Wscript. Utilizado para se fazer referncia a uma instncia do objeto Wscript.Set objWscript = Wscript.Application

ArgumentsFornece uma coleo de objetos WshArguments; permite recuperar argumentos passados para um script do WSH.Set objArgs = Wscript.Arguments

ExemploRem Exibe todos os argumentos da linha de comando: Set objArgs = Wscript.Arguments For I = 0 to objArgs.Count - 1 Wscript.Echo objArgs(I) Next

BuildVersionRetorna a build version do arquivo executvel do WSH (cscript.exe ou wscript.exe) utilizado para executar o script.lngBuildVersion = Wscript.BuildVersion

ExemploRem Exibe a build version do arquivo wscript.exe: lngBuildVersion = Wscript.BuildVersion Wscript.Echo lngBuildVersion

FullNameFornece uma string contendo o caminho completo para o executvel do WSH.strFullName = Wscript.FullName

ExemploRem Exibe o caminho completo para o Wscript.exe: strFullName = Wscript.FullName Wscript.Echo strFullName

InteractiveEspecifica 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

ExemploRem Exibir a frase Modo Interativo numa caixa de mensagem, pois a propriedade Interactive foi definida como True: Wscript.Interactive = True Wscript.Echo Modo Interativo

17

Objetos do WSH

NameFornece uma string contendo o nome amigvel do objeto WScript. Essa a propriedade padro.strName = Wscript.Name

ExemploRem Exibe o nome amigvel do objeto Wscript: strName = Wscript.Name Wscript.Echo strName

PathFornece uma string contendo o nome da pasta onde o executvel do WSH reside.strPath = Wscript.Path

ExemplostrPath = Wscript.Path Wscript.Echo strPath

ScriptFullNameFornece o caminho completo para o script que est sendo executado pelo WSH.strScriptFullName = Wscript.ScriptFullName

ExemplostrScriptFullName = Wscript.ScriptFullName Wscript.Echo strScriptFullName

ScriptNameFornece o nome do arquivo de script que est sendo executado pelo WSH.strScriptName = Wscript.ScriptName

ExemploRem Exibe o nome do script: strScriptName = Wscript.ScriptName Wscript.Echo strScriptName

StdErrRetorna 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

StdInRetorna 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

18

Objetos do WSH

StdErrRetorna 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

TimeOutEspecifica 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

VersionFornece uma string com a verso do Windows Script que est sendo executado.strVerso = Wscript.Version

Mtodos do objeto Wscript ConnectObjectRelaciona um evento de um objeto a uma rotina dentro do script que ser executada quando da ocorrncia desse evento.Wscript.ConnectObject obj [,prefixo])

Parmetro obj prefixo

Descrio Nome do objeto, definido previamente pela utilizao do mtodo CreateObject(). 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.

ExemploRem Cria uma instncia do objeto MeuObjeto e relaciona o evento OnBegin rotina Evento_OnBegin: Set obj = Wscript.CreateObject(MeuObjeto) Wscript.ConnectObject obj, Evento Sub Evento_OnBegin Wscript.Echo Um objeto MeuObjeto foi inicializado! End Sub

CreateObjectDefine 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 da XML.Set obj = Wscript.CreateObject(progID [,prefixo])

19

Objetos do WSH Parmetro progID prefixo Descrio Tipo do objeto a ser definido. Chama um procedimento dentro do script cujo nome formado por prefixo mais o caractere _, mais o nome de um evento gerado pelo objeto.

ExemplosRem Criando um objeto chamado WshShell: Dim WshShell Set WshShell = Wscript.CreateObject(Wscript.Shell)

DisconnectObjectDisconecta um objeto previamente conectado.Wscript.DisconnectObject obj

EchoExibe uma caixa de mensagem informativa na tela.Wscript.Echo msg

ExemploRem Exibe uma caixa de mensagem com os dizeres WSH quente!: Wscript.Echo WSH quente!

GetObjectRetorna 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 arquivo progID prefix Exemplo

Descrio Arquivo de onde ser retornado o objeto de automao. String contendo o tipo do objeto a ser retornado. Semelhante ao parmetro de mesmo nome do mtodo CreateObject().

Rem Abre um arquivo do Microsoft Excel chamado exemplo.xls: dim obj Set obj = GetObject(C:\exemplo.xls)

QuitEncerra 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. 20

Objetos do WSH

SleepInterrompe a execuo do script durante um determinado perodo de tempo.Wscript.Sleep perodo

Parmetro perodo Exemplo

Descrio Perodo de tempo (em milissegundos) em que a execuo do script estar suspensa.

Rem A execuo do script ser suspensa por dez segundos: Wscript.Echo Script inicializado! Wscript.Sleep 10000 Wscript.Echo Script finalizado!

Objeto WshArgumentsO 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 CLSID Propriedades Item Count lenght Matriz contendo os argumentos passados na linha de comando para o script. Nmero de argumentos da linha de comando. Nmero de argumentos da linha de comando (JScript). N/A. 60254CA4-953b-11CF-8C96-00AA00B8708C.

Propriedades do objeto WshArguments ItemA 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)

ExemploRem Recupera o segundo argumento passado para o script na linha de comando: Set objArgs = Wscript.Arguments strArgs = objArgs(1) Wscript.Echo strArgs

21

Objetos do WSH

CountRetorna o nmero de argumentos passados para o script na linha de comando.Set objArgs = Wscript.Arguments

intArgs = objArgs.Count

lenghtA propriedade lenght em tudo semelhante propriedade Count. Usada para efeitos de compatibilidade com a linguagem JScript.

Objeto WshShellO objeto WshShell permite que os scripts do WSH interajam diretamente com o sistema operacional.Palavra-Chave ProgID CLSID 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. Wscript.Shell. F935DC22-1CF0-11d0-ADB9-00C04FD58A0B.

22

Objetos do WSH

Propriedades do objeto WshShell EnvironmentRetorna 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 strTipo

Descrio 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. Significado

As principais variveis de ambiente so:Nome 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. ExemploRem Obtm o nome do Sistema Operacional: Set WshShell = Wscript.CreateObject(Wscript.Shell) Set objEnvironment = WshShell.Environment(SYSTEM) strVar = objEnvironment(OS) Wscript.Echo strVar

23

Objetos do WSH

SpecialFoldersFornece 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 ExemploRem Retorna o caminho completo para a pasta Meus Documentos do usurio atual: Set WshShell = Wscript.CreateObject(Wscript.Shell) strVar = WshShell.SpecialFolders(MyDocuments) Wscript.Echo strVar

Mtodos do objeto WshShell AppActivateAtiva a janela de um aplicativo em execuo.Set WshShell = Wscript.CreateObject(Wscript.Shell)

WshShell.AppActivate strTtulo

Parmetro strTtulo Exemplo

Descrio Nome que aparece na barra de ttulo do aplicativo sendo executado.

Rem Escreve Ol Mundo! no Notepad: Set WshShell = CreateObject(WScript.Shell) WshShell.Run notepad WScript.Sleep 200 WshShell.AppActivate Notepad WScript.Sleep 200 WshShell.SendKeys Ol Mundo! WScript.Sleep 2000

24

Objetos do WSH

CreateShortcutRetorna 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 strNomeDoAtalho

Descrio 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.

ExpandEnvironmentStringsExpande uma varivel de ambiente do tipo PROCESS.Set WshShell = Wscript.CreateObject(Wscript.Shell)

strVar = WshShell.ExpandEnvironmentStrings(string)

Parmetro string Exemplo

Descrio Uma string representando uma varivel de ambiente contida entre dois caracteres de percentagem (%).

Rem Exibe o nome do sistema operacional: Set WshShell = Wscript.CreateObject(Wscript.Shell) strVar = WshShell.ExpandEnvironmentStrings(%OS%) Wscript.Echo strVar

LogEventSalva 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 intTipo 0 1 2 4 8 16 strMsg strAlvo

Descrio Um inteiro representando o tipo (status) do evento ocorrido. SUCESS ERROR WARNING INFORMATION AUDIT_SUCESS AUDIT_FAILURE Uma mensagem descrevendo o evento ocorrido. 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.

25

Objetos do WSH

PopupMostra 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 strMsg intSegundos strTtulo intTipo

Descrio Mensagem a ser apresentada na caixa de mensagem. Tempo em que a caixa de mensagem ficar na tela antes de ser automaticamente fechada. Texto da barra de ttulo da caixa de mensagem. Se omitido, ser exibido Windows Script Host. 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. Boto OK. Botes OK e Cancelar. Botes Abortar, Repetir e Ignorar. Botes Sim, No e Cancelar. Botes Sim e No. Botes Repetir e Cancelar. Exibe um X dentro de um crculo vermelho. Significa a ocorrncia de um erro. Exibe um ponto de interrogao. Normalmente usado para perguntas. Exibe um ponto de exclamao. Normalmente usado para advertncias. Exibe a letra I. Usado quando a caixa de mensagem traz informaes para o usurio.

Botes 0 1 2 3 4 5 cones 16 32 48 64

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 1 2 3 4 5 6 7 Botes OK. Cancelar. Abortar. Repetir. Ignorar. Sim. No.

26

Objetos do WSH

RegDeleteExclui uma chave ou valor do registro do Windows.Set WshShell = Wscript.CreateObject(Wscript.Shell)

WshShell.RegDelete strVar

Parmetro strVar

Descrio 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.

ExemploRem Exclui o valor Y da chave X e depois a prpria chave X de HKEY_LOCAL_MACHINE\Software: Set WshShell = Wscript.CreateObject(Wscript.Shell) WshShell.RegDelete HKLM\Software\X\Y WshShell.RegDelete HKLM\Software\X\

Abaixo, as denominaes abreviadas e completas das chavesraiz do registro do Windows:Abreviao HKCU HKLM HKCR Chaves-Raiz HKEY_CURRENT_USER. HKEY_LOCAL_MACHINE. 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.

RegReadL 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 strVar

Descrio 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.

ExemploRem L o valor Y da chave X e depois l a prpria chave X de HKEY_LOCAL_MACHINE\Software: Set WshShell = Wscript.CreateObject(Wscript.Shell) WshShell.RegRead HKLM\Software\X\Y WshShell.RegRead HKLM\Software\X\

27

Objetos do WSH

RegWriteCom 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 strVar

Descrio 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. Dado a ser escrito. Tipo do dado a ser escrito. Pode ser REG_SZ, REG_EXPAND_SZ, REG_DWORD e REG_BINARY. Se tentar utilizar outro tipo, ser retornado E_INVALIDARG.

strDado strTipo

ExemploRem Escreve WSH no valor Y da chave X e depois na prpria chave X de HKEY_LOCAL_MACHINE\Software: Set WshShell = Wscript.CreateObject(Wscript.Shell) WshShell.RegWrite HKLM\Software\X\Y, WSH WshShell.RegWrite HKLM\Software\X\, WSH

RunCria 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.

28

Objetos do WSH 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 especificado ou False, retornar imediatamente ao script com um cdigo de erro zero. Caso True, retornar qualquer cdigo de erro da aplicao que estiver sendo executada. ExemploRem Inicia o Notepad: Set WshShell = Wscript.CreateObject(WScript.Shell) WshShell.Run notepad

7

SendKeysEnvia 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 string

Descrio 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 BREAK CAPS LOCK DELETE END ENTER ESC HELP HOME {BACKSPACE}, {BS} ou {BKSP} {BREAK} {CAPSLOCK} {DELETE} ou {DEL} {END} {ENTER} ou ~ {ESC} {HELP} {HOME} 29

Objetos do WSH INSERT NUM LOCK PAGE DOWN PAGE UP PRINT SCREEN SCROLL LOCK SETA P/ BAIXO SETA P/ DIREITA SETA P/ ESQUERDA SETA P/ CIMA TAB F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 SHIFT CTRL ALT {INSERT} ou {INS} {NUMLOCK} {PGDN} {PGUP} {PRTSC} {SCROLLLOCK} {DOWN} {RIGHT} {LEFT} {UP} {TAB} {F1} {F2} {F3} {F4} {F5} {F6} {F7} {F8} {F9} {F10} {F11} {F12} + ^ %

Os caracteres de soma (+), percentagem (%), acento circunflexo (^), parnteses (( )) e til (~) tambm precisam estar entre chaves para poderem ser utilizados pelo mtodo SendKeys.ExemploRem Escreve Ol Mundo! no Notepad: Set WshShell = CreateObject(WScript.Shell) WshShell.Run notepad WScript.Sleep 200 WshShell.AppActivate Notepad WScript.Sleep 200 WshShell.SendKeys Ol Mundo! WScript.Sleep 2000

30

Objetos do WSH

Objeto WshNetworkO objeto WshNetwork permite aos scripts do WSH acessarem os recursos de rede do Windows.Palavra-Chave ProgID CLSID Propriedades ComputerName UserDomain UserName 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. Uma string contendo o nome do computador. Uma string contendo o nome do domnio do usurio. Uma string contendo o nome do usurio. Wscript.Network. F935DC26-1CF0-11d0-ADB9-00C04FD58A0B.

Propriedades do objeto WshNetwork ComputerNameFornece uma string contendo o nome do computador onde o script est sendo executado.Set WshNetwork = Wscript.CreateObject(Wscript.Network)

strNomeComputador = WshNetwork.ComputerName

ExemploRem Obtm o nome do computador: Set WshNetwork = Wscript.CreateObject(Wscript.Network) strComputerName = WshNetwork.ComputerName Wscript.Echo strComputerName

31

Objetos do WSH

UserDomainFornece 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

ExemploRem Obtm o nome do domnio: Set WshNetwork = Wscript.CreateObject(Wscript.Network) strUserDomain = WshNetwork.UserDomain Wscript.Echo strUserDomain

UserNameFornece uma string contendo o nome do usurio atualmente conectado mquina.Set WshNetwork = Wscript.CreateObject(Wscript.Network)

strUserName = WshNetwork.UserName

ExemploRem Obtm o nome do usurio atual: Set WshNetwork = Wscript.CreateObject(Wscript.Network) strUserName = WshNetwork.UserName Wscript.Echo strUserName

Mtodos do objeto WshNetwork AddPrinterConnectionMapeia uma impressora remota para um recurso local do tipo LPT1:.Set WshNetwork = Wscript.CreateObject(Wscript.Network)

WshNetwork.AddPrinterConnection strRecursoLocal, strImpressoraRemota

Parmetro strRecursoLocal

Descrio

Nome do recurso local para o qual ser mapeada a impressora. Exemplo: LPT1:. strImpressoraRemota Caminho para a impressora remota, do tipo \\nomedoservidor\nomedaimpressoracompartilhada. ExemploRem Mapeia a impressora Y no servidor X para o recurso local LPT3: Set WshNetwork = Wscript.CreateObject(Wscript.Network) WshNetwork.AddPrinterConnection LPT3:, \\X\Y

32

Objetos do WSH

AddWindowsPrinterConnectionAdiciona uma conexo de impressora ao Windows.Set WshNetwork = Wscript.CreateObject(Wscript.Network)

WshNetwork.AddWindowsPrinterConnection strImpressora, strDriver [,strPortaDeImpressora]

Parmetro strImpressora

Descrio

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. ExemploRem Adiciona a impressora Y localizada no servidor X ao Windows: Set WshNetwork = Wscript.CreateObject(Wscript.Network) WshNetwork..AddWindowsPrinterConnection \\X\Y

EnumNetworkDrivesEnumera todos os mapeamentos de rede da mquina em uma matriz, instanciando um objeto WshCollection.Set WshNetwork = Wscript.CreateObject(Wscript.Network) Set objDrives = WshNetwork.EnumNetworkDrives

EnumPrinterConnectionsEnumera os mapeamentos de impressoras da mquina em uma matriz, instanciando um objeto WshCollection.Set WshNetwork = Wscript.CreateObject(Wscript.Network) Set objImpressoras = WshNetwork.EnumPrinterConnections

MapNetworkDriveMapeia 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]

33

Objetos do WSH Parmetro strRecursoLocal Descrio

Recurso local (unidade de disco de rede) para o qual o compartilhamento ser mapeado. strCompartilhamento Nome do compartilhamento, do tipo \\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). ExemploRem Faz o mapeamento do compartilhamento Y no servidor X para a unidade de disco de rede Z:: Set WshNetwork = Wscript.CreateObject(Wscript.Network) WshNetwork.MapNetworkDrive Z:, \\X\Y

RemoveNetworkDriveRemove 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. ExemploRem Desfaz o mapeamento de rede do exemplo anterior: Set WshNetwork = Wscript.CreateObject(Wscript.Network) WshNetwork.RemoveNetworkDrive Z:

RemovePrinterConnectionSemelhante ao mtodo RemoveNetworkDrive, o mtodo RemovePrinterConnection remove um mapeamento feito para uma impressora remota.Set WshNetwork = Wscript.CreateObject(Wscript.Network)

WshNetwork.RemovePrinterConnection strImpressora

Parmetro Exemplo

Descrio

strImpressora Impressora cujo mapeamento se pretende desfazer.Rem Desfaz o mapeamento para a impressora em LPT1:: Set WshNetwork = Wscript.CreateObject(Wscript.Network) WshNetwork.RemovePrinterConnection LPT1:

34

Objetos do WSH

SetDefaultPrinterDefine 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. ExemploRem Define a impressora \\X\Y como a impressora padro do Windows: Set WshNetwork = Wscript.CreateObject(Wscript.Network) WshNetwork.SetDefaultPrinter \\X\Y

Objeto WshCollectionO objeto WshCollection no acessado explicitamente. instanciado quando da utilizao dos mtodos EnumNetworkDrives e EnumPrinterConnections do objeto WshNetwork.Palavra-Chave ProgID CLSID Propriedades Item Count lenght Matriz contendo os elementos enumerados. O nmero de elementos enumerados. O nmero de elementos enumerados (JScript). N/A. F935DC24-1CF0-11d0-ADB9-00C04FD58A0B.

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)

35

Objetos do WSH

CountFornece o nmero de elementos enumerados.Set WshNetwork = Wscript.CreateObject(Wscript.Network) Set objEnum = WshNetwork.EnumNetworkDrives ou Set objEnum = WshNetwork.EnumPrinterConnections

intItens = objEnum.Count

lenghtA propriedade lenght em tudo semelhante propriedade Count. Usada para efeitos de compatibilidade com a linguagem JScript.

Objeto WshEnvironmentO 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 ProgID CLSID Propriedades Item Count lenght Mtodo Remove Remove uma varivel de ambiente. Atribui ou obtm o valor de uma varivel de ambiente. O nmero de elementos enumerados. O nmero de elementos enumerados (JScript). Descrio N/A. N/A.

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 strTipo

Descrio 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.

36

Objetos do WSH

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; 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. ExemploRem Obtm o nome do Sistema Operacional: Set WshShell = Wscript.CreateObject(Wscript.Shell) Set objEnvironment = WshShell.Environment(SYSTEM) strVar = objEnvironment.Item(OS) Wscript.echo strVar

CountFornece o nmero de elementos enumerados.Set WshShell = Wscript.CreateObject(Wscript.Shell) Set objEnvironment = WshShell.Environment([strTipo])

intVar = objEnvironment.Count

lenghtA propriedade lenght em tudo semelhante propriedade Count. Usada para compatibilidade com a linguagem JScript.

Mtodo do WshEnvironment RemoveExclui uma varivel de ambiente.Set WshShell = Wscript.CreateObject(Wscript.Shell) Set objEnvironment = WshShell.Environment(VOLATILE)

objEnvironment.Remove strVarivelDeAmbiente

37

Objetos do WSH

Objeto WshShortcutO 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 CLSID Propriedades Arguments Description FullName HotKey IconLocation TargetPath WindowsStyle WorkingDirectory Mtodos Save Salva um atalho. Argumentos passados para o atalho. Uma descrio do atalho. Uma string contendo o caminho completo para o atalho. Uma tecla ou combinao de teclas que aciona o atalho. A localizao do cone de um atalho. O arquivo alvo do atalho. O estilo da janela do atalho. O diretrio de trabalho de um atalho. N/A. F935DC28-1CF0-11d0-ADB9-00C04FD58A0B.

Propriedades do objeto WshShortcut ArgumentsRetorna 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

ExemploRem Exibe todos os argumentos passados para o atalho criado para o Notepad: Set WshShell = Wscript.CreateObject(Wscript.Shell) Set objShortcut = WshShell.CreateShortcut(c::\notepad.lnk) Set objArgs = objShortcut..Arguments For I = 0 to objArgs.Count - 1 Wscript.Echo objArgs(I) Next

DescriptionFornece uma descrio do atalho.Set WshShell = Wscript.CreateObject(Wscript.Shell) Set objShortcut = WshShell.CreateShortcut(strNomeDoAtalho)

objShortcut.Description = string

38

Objetos do WSH

FullNameFornece uma string contendo o caminho completo para o atalho.Set WshShell = Wscript.CreateObject(Wscript.Shell) Set objShortcut = WshShell.CreateShortcut(strNomeDoAtalho)

strFullName = objShortcut.FullName

HotKeyAssocia uma tecla ou combinao de teclas para acionar um atalho.Set WshShell = Wscript.CreateObject(Wscript.Shell) Set objShortcut = WshShell.CreateShortcut(strNomeDoAtalho)

objShortcut.HotKey = strHotKey

ExemploRem Associa as teclas Ctrl, Alt e N ao atalho criado para o Notepad: Set WshShell = Wscript.CreateObject(Wscript.Shell) Set objShortcut = WshShell.CreateShortcut(c::\notepad.lnk) objShortcut.Hotkey = ALT + CTRL + N

IconLocationFornece a localizao do cone de um atalho.Set WshShell = Wscript.CreateObject(Wscript.Shell) Set objShortcut = WshShell.CreateShortcut(strNomeDoAtalho)

objShortcut.IconLocation = strCaminhoDocone

TargetPathFornece o caminho para o arquivo alvo do atalho.Set WshShell = Wscript.CreateObject(Wscript.Shell) Set objShortcut = WshShell.CreateShortcut(strNomeDoAtalho)

objShortcut.TargetPath = strAlvo

ExemploRem Define o caminho para o executvel do Notepad: Set WshShell = Wscript.CreateObject(Wscript.Shell) Set objShortcut = WshShell.CreateShortcut(c::\notepad.lnk) objShortcut.TargetPath = c:\winnt\notepad.exe

WindowStyleFornece o estilo de janela de um atalho.Set WshShell = Wscript.CreateObject(Wscript.Shell) Set objShortcut = WshShell.CreateShortcut(strNomeDoAtalho)

objShortcut.WindowStyle = intEstiloDaJanela

39

Objetos do WSH

Os valores possveis para intEstiloDaJanela so:Estilos de Janela 1 3 1 ExemploRem Determina que o Notepad seja iniciado com a janela minimizada: Set WshShell = Wscript.CreateObject(Wscript.Shell) Set objShortcut = WshShell.CreateShortcut(c::\notepad.lnk) objShortcut.WindowStyle = 7

Descrio Ativa e exibe a janela como do tipo Normal. Ativa e exibe a janela maximizada. Minimiza a janela e exibe a prxima janela.

WorkingDirectoryFornece a pasta de trabalho do atalho.Set WshShell = Wscript.CreateObject(Wscript.Shell) Set objShortcut = WshShell.CreateShortcut(strNomeDoAtalho)

objShortcut.WorkingDirectory = strPastaDeTrabalho

Mtodo do objeto WshShortcut SaveSalva 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

ExemploRem Salva um atalho para o Notepad na unidade C: Set WshShell = Wscript.CreateObject(Wscript.Shell) Set objShortcut = WshShell.CreateShortcut(c::\notepad.lnk) objShortcut.TargetPath = c:\winnt\notepad.exe objShortcut.WindowStyle = 1 objShortcut.Description = Atalho para o Notepad! objShortcut.WorkingDirectory = c:\winnt objShortcut.Save

Objeto WshSpecialFoldersO 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 CLSID Propriedades Item Count lenght 40 Matriz de elementos contendo o caminho completo para as pastas especiais do Windows. O nmero de elementos enumerados. O nmero de elementos enumerados (JScript). N/A. N/A.

Objetos do WSH

Propriedades do objeto WshSpecialFolders ItemA 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 strNomeDaPasta

Descrio Especifica o nome de uma das pastas especiais do Windows.

CountFornece o nmero de elementos enumerados.Set WshShell = Wscript.CreateObject(Wscript.Shell)

intVar = WshShell.SpecialFolders.Count

lenghtA propriedade lenght em tudo semelhante propriedade Count. Usada para efeitos de compatibilidade com a linguagem JScript.

Objeto WshURLShortcutO objeto WshURLShortcut tambm instanciado a partir da utilizao do mtodo CreateShortcut() do objeto WshShell. Permite criar e manipular atalhos para URLs.Palavra-Chave ProgID CLSID Propriedades FullName TargetPath Mtodos Save Salva um atalho. Uma string contendo o caminho completo para o atalho. A URL alvo do atalho. Descrio N/A. N/A.

41

Objetos do WSH

Propriedades do objeto WshURLShortcut FullNameFornece uma string contendo o caminho completo para o atalho.Set WshShell = Wscript.CreateObject(Wscript.Shell) Set objURLShortcut = WshShell.CreateShortcut(strNomeDoAtalho)

strFullName = objURLShortcut.FullName

TargetPathFornece 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 SaveSalva 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

42

Objetos do WSH

Objeto DictionaryO 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.ExemploDim frutas Set frutas = CreateObject(Scripting.Dictionary) frutas.Add a, Laranja frutas.Add b, Ma frutas.Add c, Morango frutas.Add d, Pssego Wscript.Echo A fruta contida na chave d : & frutas.item(d)

Propriedade CompareMode Count Item Key Mtodos Add Exists Items Keys Remove RemoveAll Adiciona um par chave/item ao objeto Dictionary. Booleano. Retornar True se a chave especificada existir. Retorna uma matriz contendo todos os itens de um objeto Dictionary. Retorna uma matriz contendo todas as chaves de um objeto Dictionary. Remove um par chave/item de um objeto Dictionary. Remove todos os pares chave/item de um objeto Dictionary. Define ou retorna o modo utilizado na comparao de strings. Retorna o nmero de itens em um objeto Dictionary. Define ou retorna um item para uma chave especificada. Define ou retorna o valor de uma chave especificada.

43

Objeto Dictionary

CompareModeA 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 compara vbBinaryCompare=0 vbTextCompare=1

Descrio Modo de comparao usado por funes como StrComp. Comparao binria. Comparao textual.

CountA propriedade Count retorna o nmero de itens em um objeto Dictionary.Set obj = CreateObject(Scripting.Dictionary) obj.Count

ItemA 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 chave novoitem

Descrio Chaveassociadaaoitemqueestiversendolidoouadicionado. Novo valor associado chave. Usado somente com objeto Dictionary.

KeyA propriedade Key define ou retorna o valor de uma chave em um objeto Dictionary.Set obj = CreateObject(Scripting.Dictionary)

obj.Key (chave) = novachave

Argumento chave novachave

Descrio Chave existente. Novo valor da chave.

AddO mtodo Add adiciona um par chave/item a um objeto Dictionary.Set obj = CreateObject(Scripting.Dictionary)

obj.Add chave, item

Argumento chave item 44

Descrio Chave associada ao item que estiver sendo adicionado. Item a ser adicionado.

Objeto Dictionary

ExistsO 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 chave

Descrio Chave a ser pesquisada no objeto Dictionary.

ItemsO mtodo Items retorna uma matriz contendo todos os itens de um objeto Dictionary.Set obj = CreateObject(Scripting.Dictionary)

obj.Items

KeysO mtodo Keys retorna uma matriz contendo todas as chaves de um objeto Dictionary.Set obj = CreateObject(Scripting.Dictionary)

obj.Keys

RemoveO mtodo Remove remove um par chave/item de um objeto Dictionary.Set obj = CreateObject(Scripting.Dictionary)

obj.Remove (chave)

Argumento chave

Descrio Chave a ser removida do objeto Dictionary.

RemoveAllO mtodo RemoveAll remove todos os pares chave/item de um objeto Dictionary.Set obj = CreateObject(Scripting.Dictionary)

obj.RemoveAll

45

FileSystemObject

FileSystemObjectO 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 Drive File Folder TextStream Colees Drives Files Folders Uma lista de todos os drives da mquina. Uma lista dos arquivos contidos em uma pasta. Uma lista das pastas contidas em outra pasta ou na raiz de um disco. Objeto principal do FSO. Tem de ser instanciado antes de qualquer outro. Fornece acesso s propriedades dos drives da mquina. Fornece propriedades e mtodos para manipulao de arquivos. Fornece propriedades e mtodos para manipulao de pastas. Permite acessar (criar, ler e escrever) arquivos de texto.

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 Mtodos BuildPath CopyFile CopyFolder CreateFolder CreateTextFile DeleteFile DeleteFolder DriveExists FileExists Anexa um nome a um caminho existente. Copia um arquivo para um local especificado. Copia uma pasta para um local especificado. Cria uma pasta. Cria um arquivo de texto. Exclui um arquivo. Exclui uma pasta. Retornar True se o drive especificado existir. Retornar True se o arquivo especificado existir. Retorna uma coleo Drives.

46

FileSystemObject 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.

DrivesRetorna uma coleo Drives onde esto contidos todos os drives da mquina.Set fso =CreateObject(Scripting.FileSystemObject) Set myDrives = fso.Drives

ExemploRem Exibe todos os drives da mquina: Set fso = CreateObject(Scripting.FileSystemObject) Set myDrives = fso.Drives For Each drive in myDrives S = S + drive + \ + chr(10) Next Wscript.Echo S

BuildPathAnexa um nome a um caminho existente.Set fso =CreateObject(Scripting.FileSystemObject)

novocaminho = fso.BuildPath(caminho, nome)

Parmetro caminho nome Exemplo

Descrio Caminho ao final do qual se quer adicionar um nome. Nome que se quer adicionar ao caminho existente.

Rem Adiciona o nome de arquivo x.txt ao caminho c:\windows\: Set fso = CreateObject(Scripting.FileSystemObject) novocaminho = fso.BuildPath(c:\windows, x.txt) Wscript.Echo novocaminho

47

FileSystemObject

CopyFileCopia um ou mais arquivos para um local especificado.Set fso = CreateObject(Scripting.FileSystemObject)

fso.CopyFile origem, destino [,fSubstituir]

Parmetro origem

Descrio Caminho completo para o(s) arquivo(s) a ser(em) copiado(s). Caracteres curinga (*) podem ser usados no lugar do nome dos arquivos. Nova localizao do(s) arquivo(s). Se True, substituir os arquivos existentes na nova localizao que tenham o mesmo nome dos arquivos que esto sendo copiados.

destino fSubstituir

ExemploRem Copia o arquivo c:\x.txt para a pasta c:\windows\: Set fso = CreateObject(Scripting.FileSystemObject) fso.CopyFile c:\x.txt, c:\windows\

CopyFolderCopia uma pasta para um local especificado.Set fso = CreateObject(Scripting.FileSystemObject)

fso.CopyFolder origem, destino [,fSubstituir]

Parmetro origem

Descrio Caminho completo para a pasta a ser copiada. Caracteres curinga (*) podem ser usados no lugar do nome da pasta. Nova localizao da pasta. Se True, substituir os arquivos homnimos caso haja uma pasta na nova localizao com o mesmo nome da pasta a ser copiada.

destino fSubstituir

ExemploRem Copia a pasta c:\teste\ para a pasta c:\windows\: Set fso = CreateObject(Scripting.FileSystemObject) fso.CopyFolder c:\teste, c:\windows\

CreateFolderCria uma pasta na localizao especificada, retornando um objeto Folder.Set fso = CreateObject(Scripting.FileSystemObject) Set f = fso.CreateFolder(strNovaPasta)

Parmetro strNovaPasta Exemplo

Descrio Caminho completo para a nova pasta a ser criada. Ser retornado um erro caso a pasta j exista.

Rem Cria a pasta novapasta em c:\: Set fso = CreateObject(Scripting.FileSystemObject) Set f = fso.CreateFolder(c:\novapasta)

48

FileSystemObject

CreateTextFileCria 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 strArquivoTexto fSubstituir

Descrio Caminho completo para o arquivo de texto a ser criado. Se True, substituir um arquivo homnimo pelo arquivo que estiver sendo criado. Se False, o arquivo original ser mantido. Se True, um arquivo Unicode ser criado. Se False ou omitido, ser criado um arquivo ASCII.

unicode Exemplo

Rem Cria um arquivo chamado x.txt em c:\: Set fso = CreateObject(Scripting.FileSystemObject) Set f = fso.CreateTextFile(c:\x.txt, true)

DeleteFileExclui um arquivo.Set fso = CreateObject(Scripting.FileSystemObject)

fso.DeleteFile strArquivo [,fForado]

Parmetro strArquivo fForado Exemplo

Descrio Caminho para o arquivo a ser excludo. Booleano. Esse parmetro ter de ser True se o arquivo a ser excludo for somente de leitura.

Rem Exclui o arquivo x.txt criado anteriormente: Set fso = CreateObject(Scripting.FileSystemObject) fso.DeleteFile c:\x.txt, true

DeleteFolderExclui uma pasta.Set fso = CreateObject(Scripting.FileSystemObject)

fso.DeleteFolder strPasta [,fForado]

Parmetro strPasta fForado Exemplo

Descrio Caminho para a pasta a ser excluda. Booleano. Esse parmetro ter de ser True se a pasta a ser excluda for somente de leitura.

Rem Exclui a pasta novapasta criada anteriormente: Set fso = CreateObject(Scripting.FileSystemObject) fso.DeleteFolder c:\novapasta

49

FileSystemObject

DriveExistsRetornar True se o drive especificado existir.Set fso = CreateObject(Scripting.FileSystemObject)

fRetorno = fso.DriveExists(strDrive)

Parmetro strDrive Exemplo

Descrio Nome do drive.

Rem Verifica se o drive z:\ existe: Set fso = CreateObject(Scripting.FileSystemObject) fRetorno = fso.DriveExists(z:) if fRetorno = True then Wscript.Echo O drive Z:\ existe! else Wscript.Echo O drive Z:\ no existe! end if

FileExistsSimilar ao mtodo DriveExists(), o mtodo FileExists() tambm retornar True se o arquivo especificado existir.Set fso = CreateObject(Scripting.FileSystemObject)

fRetorno = fso.FileExists(strArquivo)

Parmetro strArquivo Exemplo

Descrio Caminho completo para o arquivo cuja existncia se pretende averiguar.

Rem Verifica se o arquivo x.txt existe: Set fso = CreateObject(Scripting.FileSystemObject) fRetorno = fso.FileExists(c:\x.txt) if fRetorno = True then Wscript.Echo O arquivo existe! else Wscript.Echo O arquivo no existe! end if

FolderExistsRetornar True se a pasta especificada existir.Set fso = CreateObject(Scripting.FileSystemObject)

fRetorno = fso.FileExists(strArquivo)

Parmetro strArquivo

Descrio Caminho completo para a pasta cuja existncia se pretende averiguar.

50

FileSystemObject ExemploRem Verifica a pasta Windows existe: Set fso = CreateObject(Scripting.FileSystemObject) fRetorno = fso.FolderExists(c:\windows) if fRetorno = True then Wscript.Echo A pasta Windows existe! else Wscript.Echo A pasta Windows no existe! Provavelmente voc instalou o sistema em outra mquina. end if

GetAbsolutePathNameRetorna 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. ExemploRem Partindo do princpio que a pasta atual Meus Documentos, observe o comportamento do mtodo GetAbsolutePathName: Set fso = CreateObject(Scripting.FileSystemObject) strCaminho = fso.GetAbsolutePathName(c:) Rem Vai exibibir c:\meus documentos Wscript.Echo strCaminho strCaminho = fso.GetAbsolutePathName(roberto) Wscript.Echo strCaminho Rem Vai exibir c:\meus documentos\roberto strCaminho = fso.GetAbsolutePathName(c:\\\) Wscript.Echo strCaminho Rem Vai exibir c:\

GetBaseNameRetorna o nome de um arquivo sem a extenso.Set fso = CreateObject(Scripting.FileSystemObject)

strNomeDoArquivo = fso.GetBaseName(strCaminho)

Parmetro strCaminho Exemplo

Descrio Caminho completo para o arquivo.

Rem Retorna o nome do arquivo Notepad.exe: Set fso = CreateObject(Scripting.FileSystemObject) strNomeDoArquivo = fso.GetBaseName(c:\windows\notepad.exe) Wscrtpt.Echo strNomeDoArquivo

51

FileSystemObject

GetDriveRetorna um objeto Drive.Set fso = CreateObject(Scripting.FileSystemObject) Set objDrive = fso.GetDrive(strDrive)

Parmetro strDrive

Descrio 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.

GetDriveNameRetorna o nome do drive contido no caminho fornecido.Set fso = CreateObject(Scripting.FileSystemObject)

strDrive = fso.GetDriveName(strCaminho)

Parmetro strCaminho

Descrio Um caminho na forma unidadededisco\pasta\arquivo. O mtodo retornar justamente a unidadededisco.

GetExtensionNameSimilar ao mtodo GetBaseName(), s que ele retorna justamente a extenso de um arquivo.Set fso = CreateObject(Scripting.FileSystemObject)

strExtDoArquivo = fso.GetExtensionName(strCaminho)

ExemploRem Retorna a extenso do arquivo Notepad.exe: Set fso = CreateObject(Scripting.FileSystemObject) strExtDoArquivo = fso.GetExtensionName(c:\windows\notepad.exe) Wscript.Echo strExtDoArquivo

GetFileRetorna um objeto File para um arquivo existente.Set fso = CreateObject(Scripting.FileSystemObject) Set objFile = fso.GetFile(strArquivo)

Parmetro strArquivo

Descrio Caminho completo para o arquivo a ser retornado.

GetFileNameRetorna o nome do arquivo em um dado caminho.Set fso = CreateObject(Scripting.FileSystemObject)

strNomeDoArquivo = fso.GetFileName(strCaminho)

Parmetro strCaminho

Descrio Caminho completo para o arquivo cujo nome se pretende obter.

52

FileSystemObject

GetFolderRetorna um objeto Folder para uma pasta existente.Set fso = CreateObject(Scripting.FileSystemObject) Set f = fso.GetFolder(strPasta)

Parmetro strPasta

Descrio Caminho completo para a pasta a ser retornada.

GetParentFolderNameRetorna a pasta onde est contida a ltima pasta ou arquivo de um caminho.Set fso = CreateObject(Scripting.FileSystemObject)

strParentFolder = fso.GetParentFolderName(strCaminho)

Parmetro strCaminho Exemplo

Descrio Caminho completo para uma pasta ou arquivo.

Rem Retorna a pasta onde est contida a pasta System do Windows: Set fso = CreateObject(Scripting.FileSystemObject) strParentFolder = fso.GetParentFolderName(c:\windows\system) Wscript.Echo strParentFolder

GetSpecialFolderRetorna o nome de uma pasta especial do Windows.Set fso = CreateObject(Scripting.FileSystemObject)

strSpecialFolder = fso.GetSpecialFolder(intTipo)

Parmetro intTipo 0 1

Descrio Pasta onde esto instalados os arquivos do Windows (normalmente, C:\Windows ou C:\Winnt). Pasta onde esto os arquivos de sistema do Windows (normalmente, C:\Windows\System ou C:\Winnt\System). Pasta onde so armazenados os arquivos temporrios.

2

GetTempNameGera 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

ExemploRem Gera um nome aleatrio de arquivo temporrio para ser utilizado pelo mtodo CreateTextFile(): Set fso = CreateObject(Scripting.FileSystemObject) ArquivoTemporrio = fso.GetTempName Set objFile = fso.CreateTextFile(ArquivoTemporrio) Wscript.Echo fso.GetFileName(ArquivoTemporrio)

53

FileSystemObject

MoveFileMove 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 origem

Descrio Caminho completo para o(s) arquivo(s) a ser(em) movidos(s). Caracteres curinga (*) podem ser usados no lugar do nome dos arquivos. Nova localizao do(s) arquivo(s).

destino Exemplo

Rem Move o arquivo c:\x.txt para a pasta c:\windows\: Set fso = CreateObject(Scripting.FileSystemObject) fso.MoveFile c:\x.txt, c:\windows\

MoveFolderMove 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 origem

Descrio Caminho completo para a pasta a ser movida. Caracteres curinga (*) podem ser usados no lugar do nome da pasta. Nova localizao da pasta.

destino Exemplo

Rem Move a pasta c:\teste\ para a pasta c:\windows\: Set fso = CreateObject(Scripting.FileSystemObject) fso.MoveFolder c:\teste, c:\windows\

OpenTextFileAbre 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 strArquivo

Descrio Caminho completo para o arquivo de texto a ser aberto.

54

FileSystemObject 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. ExemploRem Abre o arquivo c:\x.txt para escrita: Set fso = CreateObject(Scripting.FileSystemObject) Const ForReading = 1, ForWriting = 2, ForAppending = 8 Set f = fso.OpenTextFile(c:\x.txt, ForWriting, True)

Objeto DriveO objeto Drive instanciado atravs da utilizao do mtodo GetDrive() do objeto FileSystemObject.Propriedades AvailableSpace DriveLetter DriveType FileSystem FreeSpace IsReady Path RootFolder SerialNumber ShareName TotalSize VolumeName Descrio A quantidade de espao disponvel em um drive para o usurio. A letra que representa o drive. O tipo do drive. O sistema de arquivos em uso. A quantidade de espao livre no drive. Retornar True se o drive estiver pronto para ser usado. Caminho para um drive. Pasta raiz do drive. Nmero de identificao exclusiva do volume. Retorna o compartilhamento de rede para um drive especificado. A quantidade de espao em um drive. Define ou retorna o nome do volume.

Propriedades do objeto Drive AvailableSpaceRetorna 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

55

FileSystemObject

DriveLetterRetorna a letra que representa um drive.Set fso = CreateObject(Scripting.FileSystemObject) Set objDrive = fso.GetDrive(strDrive)

strLetra = objDrive.DriveLetter

DriveTypeRetorna um inteiro indicando o tipo do drive.Set fso = CreateObject(Scripting.FileSystemObject) Set objDrive = fso.GetDrive(strDrive)

intTipoDoDrive = objDrive.DriveType

Tipo 0 1 2 3 4 5

Descrio Desconhecido. Removvel (disquete). Fixo. Drive de Rede. Drive de CD-ROM. Disco de RAM.

FileSystemRetorna 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

FreeSpaceRetorna a quantidade de espao livre num drive.Set fso = CreateObject(Scripting.FileSystemObject) Set objDrive = fso.GetDrive(strDrive)

intEspao = objDrive.FreeSpace

IsReadyRetornar True se o drive estiver pronto para operaes de entrada/sada. Caso contrrio retornar False. Especialmente til para trabalhar com disquetes e CDROM.Set fso = CreateObject(Scripting.FileSystemObject) Set objDrive = fso.GetDrive(strDrive)

fPronto = objDrive.IsReady

56

FileSystemObject

PathRetorna o caminho para um drive.Set fso = CreateObject(Scripting.FileSystemObject) Set objDrive = fso.GetDrive(strDrive)

strCaminho = objDrive.Path

RootFolderEspecifica a pasta raiz de um drive.Set fso = CreateObject(Scripting.FileSystemObject) Set objDrive = fso.GetDrive(strDrive)

strPastaRaiz = objDrive.RootFolder

SerialNumberRetorna um identificador decimal exclusivo para o volume.Set fso = CreateObject(Scripting.FileSystemObject) Set objDrive = fso.GetDrive(strDrive)

intID = objDrive.SerialNumber

ShareNameRetorna o compartilhamento de rede para um drive.Set fso = CreateObject(Scripting.FileSystemObject) Set objDrive = fso.GetDrive(strDrive)

strCompartilhamento = objDrive.ShareName

TotalSizeRetorna a quantidade total de espao em um drive, em bytes.Set fso = CreateObject(Scripting.FileSystemObject) Set objDrive = fso.GetDrive(strDrive)

intEspaoTotal = objDrive.TotalSize

VolumeNameRetorna ou atribui um nome a um volume.Set fso = CreateObject(Scripting.FileSystemObject) Set objDrive = fso.GetDrive(strDrive)

strLetra = objDrive.VolumeNameou

objDrive.VolumeName = strLetra

57

FileSystemObject

Objeto FileO objeto File instanciado atravs da utilizao do mtodo GetFile() do objeto FileSystemObject.Propriedades Attributes DateCreated DateLastAcessed DateLastModified Drive Name ParentFolder Path ShortName ShortPath Size Type Mtodos Copy Delete Move OpenAsTextStream Descrio Obtm ou define atributos de um arquivo. Data da criao de um arquivo. Data em que um arquivo foi acessado pela ltima vez. Data em que um arquivo foi modificado pela ltima vez. Retorna a letra do drive onde o arquivo reside. Define ou retorna o nome do arquivo. Pasta onde o arquivo reside. Caminho completo para o arquivo. Nome do arquivo usando a conveno de nomenclatura do MS-DOS (8.3). Caminho completo para o arquivo usando a conveno de nomenclatura do MS-DOS. Tamanho do arquivo em bytes. Retorna informaes sobre o tipo do arquivo. Descrio Copia um arquivo para outra localizao. Exclui um arquivo. Move um arquivo para outra localizao. Abre um arquivo como sendo um fluxo de texto.

Propriedades do objeto File AttributesRetorna ou define os atributos de um arquivo.Set fso = CreateObject(Scripting.FileSystemObject) Set objFile = fso.GetFile(strArquivo)

intAtributos = objFile.Attributesou

objFile.Attributes = intAtributos

Parmetro 0 1 2 4 8 16 32 64 128

Descrio Arquivo normal. Nenhum atributo definido. Arquivo somente leitura. Arquivo oculto. Arquivo de sistema. Drive de disco. Pasta. Arquivo foi alterado desde o ltimo backup. Atalho. Arquivo comprimido.

58

FileSystemObject

DateCreatedRetorna a data e a hora da criao de um arquivo.Set fso = CreateObject(Scripting.FileSystemObject) Set objFile = fso.GetFile(strArquivo)

strData = objFile.DateCreated

DateLastAcessedRetorna 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

DateLastModifiedRetorna 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

DriveRetorna a letra do drive onde o arquivo reside.Set fso = CreateObject(Scripting.FileSystemObject) Set objFile = fso.GetFile(strArquivo)

strLetraDoDrive = objFile.Drive

NameDefine ou obtm o nome de um arquivo.Set fso = CreateObject(Scripting.FileSystemObject) Set objFile = fso.GetFile(strArquivo)

strNome = objFile.Name objFile.Name = strNome

ParentFolderRetorna a pasta onde o arquivo reside.Set fso = CreateObject(Scripting.FileSystemObject) Set objFile = fso.GetFile(strArquivo)

strPasta = objFile.ParentFolder

PathRetorna o caminho completo para o arquivo.Set fso = CreateObject(Scripting.FileSystemObject) Set objFile = fso.GetFile(strArquivo)

strCaminho = objFile.Path

59

FileSystemObject

ShortNameFornece 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

ShortPathFornece 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

SizeRetorna 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

TypeRetorna 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 CopyCopia um arquivo para outra localizao.Set fso = CreateObject(Scripting.FileSystemObject) Set objFile = fso.GetFile(strArquivo)

objFile.Copy destino [,fSubstituir]

Parmetro destino fSubstituir

Descrio Nova localizao do arquivo. Se True, substituir um arquivo existente na nova localizao que tenha o mesmo nome do arquivo que estiver sendo copiado.

60

FileSystemObject ExemploRem Copia o arquivo c:\x.txt para a pasta c:\windows\: Set fso = CreateObject(Scripting.FileSystemObject) Set objFile = fso.GetFile(c:\x.txt) objFile.Copy c:\windows\

DeleteExclui um arquivo.Set fso = CreateObject(Scripting.FileSystemObject) Set objFile = fso.GetFile(strArquivo)

objFile.Delete [fForado]

Parmetro fForado Exemplo

Descrio Booleano. Dever ser True caso o arquivo a ser excludo seja somente leitura.

Rem Exclui o arquivo c:\x.txt: Set fso = CreateObject(Scripting.FileSystemObject) Set objFile = fso.GetFile(c:\x.txt) objFile.Delete

MoveMove um arquivo para outra localizao.Set fso = CreateObject(Scripting.FileSystemObject) Set objFile = fso.GetFile(strArquivo)

objFile.Move destino

Parmetro destino Exemplo

Descrio Nova localizao do arquivo.

Rem Move o arquivo c:\x.txt para a pasta c:\windows\: Set fso = CreateObject(Scripting.FileSystemObject) Set objFile = fso.GetFile(c:\x.txt) objFile.Move c:\windows\

OpenAsTextStreamAbre 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])

61

FileSystemObject 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. ExemploRem Abre o arquivo c:\x.txt para escrita: Set fso = CreateObject(Scripting.FileSystemObject) Set objFile = fso.GetFile(c:\x.txt) Const ForReading = 1, ForWriting = 2, ForAppending = 8 Set FluxoDeTexto = objFile.OpenAsTextStream(ForWriting)

Objeto FolderO objeto Folder instanciado quando so utilizados os mtodos CreateFolder() ou GetFolder() do objeto FileSystemObject.Propriedades Attributes DateCreated DateLastAcessed DateLastModified Drive Files IsRootFolder Name ParentFolder Path ShortName ShortPath Size SubFolders Type Mtodos Copy Delete Move CreateTextFile 62 Descrio Obtm ou define atributos de uma pasta. Data da criao de uma pasta. Data em que a pasta foi acessada pela ltima vez. Data em que a pasta foi modificada pela ltima vez. Retorna a letra do drive onde a pasta reside. Retorna uma coleo de objetos File. Booleano. Determina se a pasta a pasta raiz do volume. Define ou retorna o nome da pasta. Pasta dentro da qual a pasta atual reside. Caminho completo para a pasta. Nome da pasta usando a conveno de nomenclatura do MS-DOS (8.3). Caminho completo para a pasta usando a conveno de nomenclatura do MS-DOS. Tamanho do conjunto de todos os arquivos e subpastas contidos dentro da pasta, em bytes. Retorna uma coleo de objetos Folder contidos na pasta. Retorna informaes sobre o tipo da pasta. Descrio Copia uma pasta para outra localizao. Exclui uma pasta. Move uma pasta para outra localizao. Cria um arquivo de texto e retorna um objeto TextStream.

FileSystemObject

Propriedades do objeto Folder AttributesDefine 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.Attributesou

f.Attributes = intAtributos

Parmetro 0 1 2 4 8 16 32 64 128

Descrio Arquivo normal. Nenhum atributo definido. Arquivo somente leitura. Arquivo oculto. Arquivo de sistema. Drive de disco. Pasta. Arquivo foi alterado desde o ltimo backup. Atalho. Arquivo comprimido.

DateCreatedRetorna 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

DateLastAcessedRetorna 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

63

FileSystemObject

DateLastModifiedRetorna 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

DriveRetorna 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

FilesRetorna 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

IsRootFolderRetornar 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

NameDefine 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.Nameou

f.Name = strNome

64

FileSystemObject

ParentFolderRetorna 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

PathRetorna 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

ShortNameFornece 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

ShortPathFornece 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

SizeRetorna 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

65

FileSystemObject

SubFoldersRetorna 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

TypeRetorna 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 CopyCopia 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 destino fSubstituir

Descrio Nova localizao da pasta. Se True, substituir todos os arquivos homnimos numa pasta na nova localizao que tenha o mesmo nome da pasta que estiver sendo copiada.

DeleteExclui uma pasta.Set fso = CreateObject(Scripting.FileSystemObject) Set f = fso.CreateFolder(strNovaPasta) ou Set f = fso.GetFolder(strPasta)

f.Delete [fForado]

Parmetro fForado

Descrio Booleano. Dever ser True caso a pasta a ser excluda seja somente leitura.

66

FileSystemObject

MoveMove 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 destino

Descrio Nova localizao da pasta.

CreateTextFileO 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 strArquivoTexto fSubstituir

Descrio Nome do arquivo de texto. Se True, substituir um arquivo homnimo pelo arquivo que estiver sendo criado. Se False, o arquivo original ser mantido. Se True, um arquivo Unicode ser criado. Se False ou omitido, ser criado um arquivo ASCII.

unicode

67

FileSystemObject

Objeto TextStreamO 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. Determ