Hallo,
bin über den Beitrag zu meiner Umsetzung gekommen. Leider ist dieser sehr als und geschlossen.
https://autoit.de/index.php/Thre…d-die/?pageNo=1
Benutze die pdftotext.exe von hier http://www.foolabs.com/xpdf/download.html
Und da ich das hier auch als Wissensdatenbank benutzte wollte ich meinen schlecht geschriebenen Code hier mal zurück geben.
Vielleicht kann es einer gebrauchen ? Und vielleicht hat einer noch lust den Code zu optimieren.
Gerade bei den Variablen für die Verzeichnisse stelle ich mich etwas schwer. Habe es zwar schon mal umgeschrieben allerdings habe ich es nicht Fehlerfrei zum laufen bekommen.
Ich hoffe es ist Ok wenn ich es hier so schreibe.
AutoIt
#include <Array.au3>
#include <File.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <EditConstants.au3>
#include <MsgBoxConstants.au3>
Opt('GUIOnEventMode', 1)
Opt('TrayOnEventMode', 1)
Opt('TrayMenuMode', 1)
Global Const $s_Path = "S:\zwischen\" ; Verzeichnis, in dem gesucht werden soll (ohne Backslash)
Global Const $s_Path1 = "S:\fertig\" ; Verzeichnis, in dem gesucht werden soll (ohne Backslash)
Global Const $s_Ext = '.pdf' ; Dateiendung, nach der gesucht werden soll... :P
Global Const $s_Search = 'ABC' ; Das zu suchende Wort
Global $a_Reg
$Form1 = GUICreate("Datei Umbennen", 200, 155, 192, 124)
$Setting_Menu = GUICtrlCreateMenu("Menü")
$Setting_exit = GUICtrlCreateMenuItem("Ende", $Setting_Menu)
GUICtrlSetOnEvent(-1,"_Exit")
$helpmenu = GUICtrlCreateMenu("?")
$Info = GUICtrlCreateMenuItem("Version",$helpmenu)
GUICtrlSetOnEvent(-1,"_showInfo")
$wachen = GUICtrlCreateButton("Umbennen", 8, 16, 180, 100)
GUICtrlSetFont(-1, 12, 800, 0, "@Arial Unicode MS")
GUICtrlSetBkColor(-1, 0x00FF00)
GUISetState(@SW_HIDE)
GUISetOnEvent($GUI_EVENT_CLOSE, '_Minimize')
GUISetOnEvent($GUI_EVENT_MINIMIZE, '_Minimize')
TraySetOnEvent( -7, '_Restore')
While sleep(10000)
Filemove ("S:\", "S:\zwischen",1)
Local $search = FileFindFirstFile("S:\zwischen\*.pdf")
If $search <> -1 Then
$a_List = _FileListToArray ("S:\zwischen\", '*', 1) ; Ein Array aller Dateien im Ordner wird erstellt
For $i = 1 To $a_List[0]
If StringRight ($s_Path & '\' & $a_List[$i], StringLen ($s_Ext)) = $s_Ext Then
;~ ; (-1) Falls die Dateiendung stimmt...
RunWait('"S:\script\pdftotext.exe" ' & $s_Path & $a_List[$i],"",@SW_HIDE)
Filemove ("S:\zwischen\*.txt","S:\fertig\2.txt",1)
$a_Reg = StringRegExp (FileRead ("S:\fertig\2.txt"), $s_Search & '(.............)', 1)
FileDelete("S:\fertig\2.txt")
;~ ; (-1) ... wird nach dem Wort und drei nachfolgenden Zeichen gesucht
If IsArray ($a_Reg) Then
;~ ; (-1) Falls das Wort gefunden wurde...
FileMove ($s_Path & '\' & $a_List[$i], $s_Path1 & '\' & $a_Reg[0] & $s_Ext, 1)
;~ ; (-1) ... wird die Datei umbenannt
EndIf
EndIf
Next
EndIf
WEnd
Func _showInfo()
MsgBox (0,"Info","Version 1.0 "&@CRLF&"08.12.2016")
EndFunc
Func _Exit()
Exit
EndFunc
Func _Minimize()
TraySetState(1)
GUISetState(@SW_HIDE)
EndFunc
Func _Restore()
TraySetState(2)
GUISetState(@SW_SHOW)
EndFunc
Alles anzeigen
Gruß Steffen