As operações sobre ficheiros são métodos (formas de fazer coisas com) do objecto FileSystemObject.
Nesta listagem, tem algumas das principais operações sobre ficheiros. Coloque o script numa pasta vazia e observe a progressão dos ficheiros à medida que o script executa.
Note que, para operar sobre ficheiros, tem de abrir um canal de comunicação (instanciar um objecto) apropriado primeiro.
' filetests.vbs - 2008-05-13 18:43
' Operações com ficheiros
dim CanalFicheiro
NomeOriginal="ficheiro.txt"
' Abrir canal
set CanalFicheiro = createobject("scripting.filesystemobject")
' 1. Criar
CanalFicheiro.createtextfile NomeOriginal, true
' true força a criação do ficheiro mesmo que já exista
' o existente é apagado
msgbox "Paragem 1: ficheiro.txt criado",vbInformation
' 2. Renomear através de um "move"
CanalFicheiro.movefile NomeOriginal, "NovoFicheiro.txt"
' O move falha se o ficheiro destino já existe
msgbox "Paragem 2: Ficheiro movido para NovoFicheiro",vbInformation
' 3. Copiar
CanalFicheiro.copyfile "NovoFicheiro.txt", "NovoFicheiro2.txt"
msgbox "Paragem 3: NovoFicheiro copiado p/ NovoFicheiro2",vbInformation
' 4. Apagar
CanalFicheiro.deletefile "NovoFicheiro.txt"
msgbox "Paragem 4: NovoFicheiro apagado",vbInformation
CanalFicheiro.deletefile "NovoFicheiro2.txt"
msgbox "Fim: NovoFicheiro2 apagado",vbInformation
' 5. Fechar canal
set CanalFicheiro= Nothing
msgbox "Script concluído",vbInformation
' fim
Nunca se esqueça de fechar os canais de leitura/escrita antes de sair do script, senão o sistema vai continuar a considerá-los abertos, o que traz inconvenientes.
Para mais informação sobre o objecto FileSystemObject, veja o manual de referência: Scripting Runtime Library, FileSystemObject.
Não lhe vai ser difícil encontrar aplicações. Entretanto, vamos ver, também, como iniciar, a partir dum script, um programa sobre um ficheiro, por dois métodos, estes pertencentes ao objecto shell. Ambos os programas abaixo testam a existência de um ficehiro de texto e abrem-no no notepad; um não espera pelo fecho do notepad, o outro espera.
' fileshow.vbs 2008-05-13 13:55
' Remexer em ficheiros
' Testar a existência de um ficheiro
' Abri-lo no notepad
' Como exemplo de um comando sobre um ficheiro
' dado ao sistema, usando o método exec
' Referência:
' Exec Method (Windows Script Host)
' http://msdn.microsoft.com/en-us/library/ateytk4a(VS.85).aspx
dim CanalFicheiro, Ficheiro, CanalComando, Programa
' Criar o objecto ficheiro do sistema de ficheiros
' CanalFicheiro tradicionalmente é fso, aqui foi mudado
' para demonstrar ser um nome determinado pelo utilizador
' Abrir os canais
set CanalFicheiro= createobject("scripting.filesystemobject")
' CanalComando, tradicionalmente, é WshShell, mas isso não é necessário
set CanalComando= createobject("wscript.shell")
' Obter do utilizador o nome do ficheiro
Ficheiro= inputbox ("Ficheiro que quer ver: ")
' Testar e mostrar o que se encontra
if CanalFicheiro.fileexists(Ficheiro) then
' Executar o comando
set Programa= CanalComando.exec("notepad " & Ficheiro)
else
msgbox Ficheiro & " não existe"
end if
' Fechar canais
set CanalFicheiro= Nothing
set CanalComando= Nothing
' FIM
' fileshow1.vbs 2008-05-13 14:40
' Remexer em ficheiros
' Testar a existência de um ficheiro
' Abri-lo no notepad
' Como exemplo de um comando sobre um ficheiro
' dado ao sistema, usando o método run
' Referência :
' http://msdn.microsoft.com/en-us/library/d5fk67ky(VS.85).aspx
' Título: Run Method (Windows Script Host)
' 1. Declarações e inicializações -------------------------
dim CanalFicheiro, Ficheiro, CanalComando, _
ResultadoDoComando, EsperarPeloFim, vbCancel
EsperarPeloFim= true ' true: esperar pelo fim da execução do comando
' para continuar a execução do script, senão false
' Abrir os canais
' CanalFicheiro tradicionalmente é fso, aqui foi mudado
' para demonstrar ser um nome determinado pelo utilizador
set CanalFicheiro= createobject("scripting.filesystemobject")
' CanalComando, tradicionalmente, é WshShell, mas isso não é necessário
set CanalComando= createobject("wscript.shell")
' 2. Diálogo inicial --------------------------------------
' Obter do utilizador o nome do ficheiro
Ficheiro= inputbox ("Ficheiro que quer ver: ")
if Ficheiro=vbCancel then
' Cancelar: fechar canais abertos e sair
set CanalFicheiro= Nothing
set CanalComando= Nothing
wscript.quit
end if
' 3. Execução ---------------------------------------------
' Testar e mostrar o que se encontra
if CanalFicheiro.fileexists(Ficheiro) then
' Executar o comando
ResultadoDoComando= CanalComando.run ("notepad " _
& Ficheiro,4,EsperarPeloFim)
' Janela tipo 4: "Displays a window in its most recent
' size and position. The active window remains active."
else
msgbox Ficheiro & " não existe"
end if
' 4. Fechar canais antes de sair --------------------------
set CanalFicheiro= Nothing
set CanalComando= Nothing
' 5. Diálogo final ----------------------------------------
' Mensagem final com código de saída de execução do comando
' se houver (se > 0)
if ResultadoDoComando > 0 then
msgbox "Fim do script, erro " _
& ResultadoDoComando,vbInformation,"fileshow1.vbs"
else
msgbox "Fim do script - sem erros "
end if
' FIM -----------------------------------------------------
Note que se criou uma variável para guardar qualquer código de erro que tenha ocorrido. Se um erro ocorresse, poderia nunca se saber.
Escreva um script que testa a existência do ficheiro c:\autoexec.bat, e outro que testa a de c:\windows\winhlp32.exe.
Escreva um script que copia todos os ficheiros de uma pasta para uma outra pasta de backup à sua escolha.
Escreva um script que abra o WordPad (que também se pode chamar write.exe, terá de procurar) ou o Notepad com um ficheiro cujo nome seja a data de hoje e extensão .rtf ou .txt respectivamente, e que o abra numa pasta dentro de Os Meus Documentos que tenha para esse efeito. A data de hoje é dada por uma string originada pela instrução date.
Início: 2008-05-13 20:35
Última modificação: 2008-05-13 20:35