Hallo,
ich habe sehr viele Dateien auf meinem PC in einem Ordner mit verwertbaren daten,
jetzt wollte ich, das ich nicht immer so ewig brauche, ein Script schreiben das alle Dateien in einem Ordner und deren Unterordnern durchsucht nach einem bestimmten Schlagwort
was brauche ich? wie gehe ich vor?
mfg
Dateien in Ordner/Unterordner nach Schlagwort durchsuchen
-
- [ offen ]
-
Zattoo -
27. August 2012 um 07:41 -
Geschlossen -
Erledigt
-
-
Hallo,
schau Dir doch mal FileFindFirstFile und FileFindNextFile an... Das könnte Dir schon bei deiner Suche helfen. Bei Fragen helfe ich gerne weiter.
Gruß
Sol.LrMartyn
-
habe es jetzt mit arrays gemacht
[autoit]
like this?#include <File.au3>
[/autoit][autoit][/autoit][autoit]
#include <Array.au3>Global $Ordner = @ScriptDir & "\"
[/autoit][autoit][/autoit][autoit]
Global $SearchString = "Montag"
Global $FolderListResult[1]
Global $Result[1]_GetAllFolders($Ordner)
[/autoit][autoit][/autoit][autoit]
_ArrayDisplay($FolderListResult)ConsoleWrite($FolderListResult[0] & @CRLF)
[/autoit][autoit][/autoit][autoit]
For $l = 1 To $FolderListResult[0]
_Search($FolderListResult[$l])
Next
;_ArrayDisplay($Result)Func _Search($SearchPath)
[/autoit][autoit][/autoit][autoit]
$FileList = _FileListToArray($SearchPath, "*", 1)
For $i = 1 To $FileList[0]
$ReadedFile = FileRead($FileList[$i])
If StringInStr($ReadedFile, $SearchString) Then
_ArrayAdd($Result, $FileList[$i])
EndIf
Next
EndFuncFunc _GetAllFolders($Ordner)
[/autoit]
_ArrayAdd($FolderListResult, $Ordner)
$FolderList = _FileListToArray($Ordner, "*", 2)
If $FolderList = 0 Then Return
For $i = 1 To $FolderList[0]
_GetAllFolders($Ordner & $FolderList[$i] & "\")
Next
EndFuncso gehts aber nicht, er gibts nicht aus
[autoit]_GetAllFolders($Ordner)
[/autoit][autoit][/autoit][autoit]_ArrayDisplay($FolderListResult) ;hier zeigt er noch alles an
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]ConsoleWrite($FolderListResult[0] & @CRLF) ;dann gehts hier und...
[/autoit][autoit][/autoit][autoit]For $l = 1 To $FolderListResult[0] ;...hier nicht mehr
[/autoit][autoit][/autoit][autoit]_Search($FolderListResult[$l])
[/autoit][autoit][/autoit][autoit]Next
[/autoit][autoit][/autoit][autoit];_ArrayDisplay($Result)
[/autoit] -
Gib mir ein bisschen Zeit, ich schaue es mir im Laufe des Tages an, ok? Habe nicht sofort Zeit dafür.
-
alles kloar
-
Äh, kurze Zwischenfrage, Du packst das später schon in eine ordentliche GUI oder?
-
jap
mit fileopendialog und unten dann die dateien in der der inhalt steht in einem log
wäre geil wenn man doppelklick draufmachen kann und dann öffnet man die datei -
Ich bastel gleich mal was eigenes zusammen.
Und schreib es mal hierrein, mal schau wies läuft.
-
Also
[autoit]; Shows the filenames of all files in the current directory.
[/autoit]
Local $search = FileFindFirstFile("*.pdf")
; Check if the search was successful
If $search = -1 Then
MsgBox(0, "Error", "No files/directories matched the search pattern")
Exit
EndIf
While 1
Local $file = FileFindNextFile($search)
If @error Then ExitLoop
MsgBox(4096, "File:", $file)
WEnd
; Close the search handle
FileClose($search)ist schon mal ein Anfang, er findet damit bei PDF die in dem Ordner liegen. Und ich glaube, daraus kann man deutlich mehr basteln.
Habe die zwei Fotos genommen und dort dasselbe ausprobiert und noch andere Kombinationen. Da kommt kein Ergebnis. Oder habe ich grade was übersehen, Zattoo?
-
danke für deine mühe, aber das habe ich ja schon
habe dir in der email geschrieben das das auslesen der remote files in ein array nicht geht, das sind ja die lokalen dateien, das habe ich ihm thread leider vergessen
so war mein versuch:Spoiler anzeigen
[autoit]Func _FTPGetAllFolders($FTPPath = "", $FTPSubPath = "0")
[/autoit] [autoit][/autoit] [autoit]
If $FTPSubPath = "0" Then
_FTP_DirSetCurrent($FTPConnect, "/")
Else
_FTP_DirSetCurrent($FTPConnect, $FTPPath)
EndIf
ConsoleWrite(_FTP_DirGetCurrent($FTPConnect) & @CRLF)$FTPFolderList = _FTP_ListToArray($FTPConnect, 1)
[/autoit]
If $FTPFolderList[0] = 0 Then MsgBox(0,"","return")
For $p = 1 To $FTPFolderList[0]
If Not StringInStr($FTPPath & $FTPFolderList[$p], ".") Then
_ArrayAdd($RemoteFolderListResult, $FTPPath & $FTPFolderList[$p])
_FTPGetAllFolders($FTPPath & $FTPFolderList[$p] & "/", $FTPFolderList[$p])
EndIf
Next
EndFuncdanke trotzdem für die mühe
-
Na ja, sowas weiß ich ja noch nicht, xD... Hm, also externe Festplatte anschließen oder wie? xD
-
ne
vom ftp server die remote files rekursiv in ein array ausgeben
aber es will nicht wie ich will, das ist mein 100. versuch -
ne
vom ftp server die remote files rekursiv in ein array ausgeben
aber es will nicht wie ich will, das ist mein 100. versuchAh ok, nen FTP hab ich auch, ich schau mal, brauche aber da ein paar Min, xD
-
ok, schreib dann hier