VBScript - Trova testo in una cartella di files TXT - Fabrizio Fumagalli in internet con FABRIZIO-ONLINE.IT

Vai ai contenuti

Menu principale:

INFORMATICA > VBSCRIPT
VBScript - Menù
Lo script qui sotto, effettua una ricerca in una cartella (può essere anche un percoso di rete) contenente file di testo (.txt , .ini, ... ) e mostra a video il nome del file e la riga dove è stato trovato.
I risultati vengono inoltre scritti in un file di testo formata da "Trovato+ la chiave di ricerca+.txt".
Sicuramente lo script qui sotto può essere ottimizzato, semplificato,... però posso assicurarvi che questo è funzionate e perchè l'ho testato/usato personalmente.
Set fso = CreateObject("Scripting.FileSystemObject")
'Punta alla cartella da analizzare.

Set folder = fso.GetFolder("\\notebook\reports")

Set files = folder.Files
strNewContent = InputBox ("INSERIRE LA FRASE DA CERCARE" & vbCrLf & vbCrLf & "maiuscono o minuscono è indifferente" & vbCrLf & vbCrLf & "La ricerca terminerà quando apparirà il msg RICERCA COMPLETATA", "TROVA IP DEL PC IN USO", "")

Set ObjFileSystemObject = WScript.CreateObject("Scripting.FileSystemObject")

IfIsEmpty(strNewContent) Then' se preme ANNULLA esce
    WScript.Quit
Endif

strNewContent = UCase(strNewContent) 'trasformo la parola da cercare in maiuscono, visto che i contenuti dei files della cartella sono tutti in maiuscolo
Trovato = 0
ForEach file in files
    NomeFile = file.Name
    Percorso = file.Path
    Set objFS = CreateObject("Scripting.FileSystemObject")
    Set objTS = objFS.OpenTextFile(Percorso,1)
    strContents = objTS.ReadAll
    objTS.Close
    arrLines  = Split(strContents, vbNewLine)   
    NumRiga = 1' per sapere in quale riga viene trovata
        ForEach varRiga in arrLines 'per varRiga dell'array arrLines
            If  InStr(varRiga, strNewContent) Then'controllo se la varRiga contiene la stringa da ricercare, se si...
                MsgBox"Trovato in " & NomeFile & " alla riga " & NumRiga
                Set ObjOpenTextFile = ObjFileSystemObject.OpenTextFile("c:\temp\Trovato" & strNewContent & ".txt", 8 , True)
                    'Scrivo nel file.
                    ObjOpenTextFile.WriteLine "Trovato in " & NomeFile & " alla riga " & NumRiga
                    ObjOpenTextFile.Close

                Trovato = 1
            EndIf
            NumRiga = NumRiga + 1    
        Next        
    Next

If Trovato = 0Then
    MsgBox"FRASE NON TROVATA",48
EndIf

If Trovato = 1Then
    MsgBox"RICERCA COMPLETATA",48
EndIf
  

Per eseguire lo script basta semplicemente copiare il testo delle righe qui sopra (evidenziate in azzurro), incollarlo in un file (con Blocco note) e salvarlo con estensione .vbs , e poi doppio click.
 


Cerca






Fabrizio Fumagalli è in internet su FABRIZIO-ONLINE.IT
Torna ai contenuti | Torna al menu