Usuário com melhor resposta
Alterar conteudo de arquivos dentro de um diretorio

Pergunta
-
Olá a todos, estou com uma pequena duvida, achei esse script abaixo na internet e gostaria de adaptar ele para ao inves dele substituir o conteúdo de um arquivo especifico, ele alterasse atraves da extensao ou diretorio, independente do nome do arquivo. Exemplo
Const FOR_READING = 1 Const FOR_WRITING = 2 strFileName = "C:\scripts\test.txt" Set objFS = CreateObject("Scripting.FileSystemObject") Set objTS = objFS.OpenTextFile(strFileName, FOR_READING) strContents = objTS.ReadAll objTS.Close Set objTS = objFS.OpenTextFile(strFileName, FOR_WRITING) strContents = Replace(strContents, "Scripts", "Palavra Nova") objTS.WriteLine st
Onde esta strFileName fosse StrFolder ou StrExtension pq neste caso o nome do arquivo poderia ser qualquer um, pois ele alteraria. Digo pq os arquivos dentro deste diretorio sempre serao .html porem os nomes sempre mudam.
Conseguem me ajudar?
Obrigado a todos.
Fábio Lourenço - MCP + MCDST + MCSA + ITIL
- Editado Fábio Lourenço quinta-feira, 23 de maio de 2013 13:56 erro de gramatica
Respostas
-
é só vc apagar as linha com o wscript.echo
O popup aparece porque vc está dando dois cliques no arquivo, se vc executar via prompt de comando é mais legal porque ao invés do popup ele vai escrevendo na tela, é uma forma de vc saber o que está acontecendo, execute assim de um prompt de comando:
cscript c:\seuscript.vbs
Fábio de Paula Junior
- Marcado como Resposta Fábio Lourenço sábado, 25 de maio de 2013 03:35
Todas as Respostas
-
-
Não entendi bem. Confirme se é isto que achei:
O script vai continuar fazendo a mesma coisa: Trocar uma palavra por outra.
A diferença é que ao invés de fazer isto para apenas um arquivo (C:\scripts\test.txt) ele fará isto para todos os arquivos de uma determinada pasta?
No exemplo abaixo eu leio apenas os arquivos de uma determinada pasta (não entro nos subdiretórios, se quiser veja o link que coloquei no final), no exemplo existe um filtro para que somente os arquivos com extensão HTML sofram a troca de strings
Const FOR_READING = 1 Const FOR_WRITING = 2 objStartFolder = "C:\Temp" Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder(objStartFolder) Set colFiles = objFolder.Files For Each objFile in colFiles If UCase(objFSO.GetExtensionName(objFile.name)) = "HTML" Then Wscript.Echo objFile.path Troca_Palavra objFile.path, "oi","Tchau" End If Next Sub Troca_Palavra(strArquivo, strVelha,StrNova) strFileName = strArquivo Set objFS = CreateObject("Scripting.FileSystemObject") Set objTS = objFS.OpenTextFile(strFileName, FOR_READING) strContents = objTS.ReadAll objTS.Close Set objTS = objFS.OpenTextFile(strFileName, FOR_WRITING) strContents = Replace(strContents, strVelha, StrNova) objTS.WriteLine strContents objTS.close end sub
Ref.:
How Can I Get a List of All the Files in a Folder and Its Subfolders?
Fábio de Paula Junior
-
-
é só vc apagar as linha com o wscript.echo
O popup aparece porque vc está dando dois cliques no arquivo, se vc executar via prompt de comando é mais legal porque ao invés do popup ele vai escrevendo na tela, é uma forma de vc saber o que está acontecendo, execute assim de um prompt de comando:
cscript c:\seuscript.vbs
Fábio de Paula Junior
- Marcado como Resposta Fábio Lourenço sábado, 25 de maio de 2013 03:35
-