Upload
marcelo-vicente-de-almeida
View
1.014
Download
0
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