Re: Optimierung Umbenennungstool
Posted: 13 Nov 2021, 19:03
Hallo just me!
Nach einigen anderen Arbeiten komme ich wieder auf Deinen letzten Tipp zurück. Ich habe den etwas verändert und versucht, ihn zu einer Art Filter umzubauen, aber da hängt es noch.
Man soll jetzt über eine InputBox eine Zeichenkette eingeben und dann sollen diejenigen Dateien angezeigt werden, die diese im Namen enthalten. Ziel ist natürlich - wenn das erstmal läuft - diese Dateien so zusammenzufassen, daß sie mit den bekannten Regeln bzw. Routinen umbenannt werden können. Soweit die Theorie.
So wie das jetzt ist, findet es die Dateien mit dem String darin (5 Stück sind das), die anderen aber nicht. Stattdessen werden diese Dateien ein zweites Mal aufgeführt, bis die 10 Schleifendurchläufe voll sind. Habe ich die Pfade oder Namen dort falsch angegeben oder benannt? Ich hab das Gefühl, daß es daran liegen könnte.
Außerdem mußte ich die Prüfung If Item.IsFolder() auskommentieren, weil das continue alle weiteren Befehle ignoriert und nicht nur den nächsten überspringt. Wie löst man dieses Problem?
Viele Grüße von Meister Lampe
Nach einigen anderen Arbeiten komme ich wieder auf Deinen letzten Tipp zurück. Ich habe den etwas verändert und versucht, ihn zu einer Art Filter umzubauen, aber da hängt es noch.
Code: Select all
+^f::
ActiveWindow := WinExist("A")
ShellWin := 0
For Win In Shell.Windows {
If (Win.HWND = ActiveWindow) {
ShellWin := Win
Break
}
}
InputBox, SuchString, , Hier bitte Suchstring eingeben, , 225, 125
If !(ShellWin)
Return
If !(ShellWin.Document.SelectedItems.Count = 1) {
MsgBox, 16, Fehler!, Bitte genau eine Datei auswählen!
Return
}
FilePath := ShellWin.Document.SelectedItems.Item[0].Path
MsgBox, %FilePath%
I := 1
For Item In ShellWin.Document.Folder.Items {
;~ If Item.IsFolder() ; das Element ist ein Ordner -> überspringen
;~ Continue
;~ else
If InStr(Item.path, SuchString)
MsgBox, 0, % "Datei " . I++, % Item.path
else
MsgBox, %SuchString% nicht gefunden!
If (I > 10) ; nach spätestens 10 Dateien ist Schluss
Break
}
Return
So wie das jetzt ist, findet es die Dateien mit dem String darin (5 Stück sind das), die anderen aber nicht. Stattdessen werden diese Dateien ein zweites Mal aufgeführt, bis die 10 Schleifendurchläufe voll sind. Habe ich die Pfade oder Namen dort falsch angegeben oder benannt? Ich hab das Gefühl, daß es daran liegen könnte.
Außerdem mußte ich die Prüfung If Item.IsFolder() auskommentieren, weil das continue alle weiteren Befehle ignoriert und nicht nur den nächsten überspringt. Wie löst man dieses Problem?
Viele Grüße von Meister Lampe