INFORMATICA > VBSCRIPT
TROVA TESTO
VBScript - Trova testo
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")
If IsEmpty(strNewContent) Then ' se preme ANNULLA esce
WScript.Quit
End if
strNewContent = UCase(strNewContent) 'trasformo la parola da cercare in maiuscono, visto che i contenuti dei files della cartella sono tutti in maiuscolo
Trovato = 0
For Each 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
For Each 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
End If
NumRiga = NumRiga + 1
Next
Next
If Trovato = 0 Then
MsgBox "FRASE NON TROVATA",48
End If
If Trovato = 1 Then
MsgBox "RICERCA COMPLETATA",48
End If
'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")
If IsEmpty(strNewContent) Then ' se preme ANNULLA esce
WScript.Quit
End if
strNewContent = UCase(strNewContent) 'trasformo la parola da cercare in maiuscono, visto che i contenuti dei files della cartella sono tutti in maiuscolo
Trovato = 0
For Each 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
For Each 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
End If
NumRiga = NumRiga + 1
Next
Next
If Trovato = 0 Then
MsgBox "FRASE NON TROVATA",48
End If
If Trovato = 1 Then
MsgBox "RICERCA COMPLETATA",48
End If
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.
Se hai trovato utili questi appunti...