none
Alterar conteudo de arquivos dentro de um diretorio RRS feed

  • 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
    quinta-feira, 23 de maio de 2013 09:42

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

    sábado, 25 de maio de 2013 03:27
    Moderador

Todas as Respostas

  • Ninguém pode me ajudar?

    Fabio Lourenco - MCP+MCDST+MCSA+ITIL

    quinta-feira, 23 de maio de 2013 20:40
  • 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?

    http://blogs.technet.com/b/heyscriptingguy/archive/2004/10/20/how-can-i-get-a-list-of-all-the-files-in-a-folder-and-its-subfolders.aspx


    Fábio de Paula Junior

    sábado, 25 de maio de 2013 02:07
    Moderador
  • É exatamente isso!! Agora só me tira uma dúvida, como eu faco para nao aparecer o msgbox quando executar o script?


    Fabio Lourenco - MCP+MCDST+MCSA+ITIL

    sábado, 25 de maio de 2013 02:33
  • é 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

    sábado, 25 de maio de 2013 03:27
    Moderador
  • Muito obrigado pela sua ajuda!! Funcionou 100%

    Fabio Lourenco - MCP+MCDST+MCSA+ITIL

    sábado, 25 de maio de 2013 03:36