Post by KHA » 29 Sep 2021, 12:03
Kann man vielleicht noch global Dateien mit dem Attribut Hidden exkludieren? Das dürfte der sinnvollste Angang sein.
Ja, kann man:
Code: Select all
#NoEnv
#Singleinstance Force
Setworkingdir, % A_ScriptDir
SetBatchLines, -1
#Persistent
ListeSonderZeichen := {"ß": "ss", "ö" : "oe", "ü":"ue", "ä":"ae", "A_Space" : "-", "_" : "-"} ;gegebenenfalls Liste erweitern
UploadOrdner := "C:\Temp\*.*" ;Ordnerpfad anpassen
SetTimer, OrdnerCheck, 300000 ;Überprüft alle 5 min. ob Dateinamen die Voraussetzungen erfüllen
Return
OrdnerCheck:
DateiNamenMitSonderZeichen := ""
Loop, Files, % UploadOrdner
{
FileGetAttrib, IstVersteckt, % A_LoopFileLongPath
if InStr(IstVersteckt, "H")
continue
if RegExMatch(A_LoopFileName, "[\sßöüäÄÜÖ]|[[:upper:]]")
DateiNamenMitSonderZeichen .= A_LoopFileDir "\" A_LoopFileName "|" A_LoopFileDir "\" SonderZeichenErsetzen(A_LoopFileName, ListeSonderZeichen) "`r`n"
}
if (DateiNamenMitSonderZeichen != "")
Loop, parse, DateiNamenMitSonderZeichen, `n, `r
{
if (A_LoopField = "")
continue
MsgBox,64,Ungültige Dateiname,% "Datei " StrSplit(A_LoopField, "|").1 " erfüllt die Voraussetzungen nicht, wird durch " StrSplit(A_LoopField, "|").2 " ersetzt!"
FileMove, % StrSplit(A_LoopField, "|").1, % StrSplit(A_LoopField, "|").2
}
Return
SonderZeichenErsetzen(ZeichenKette, ListeSonderZeichen){
ZeichenKette := Format("{:L}", ZeichenKette)
SplitPath, ZeichenKette ,,, AusEndung, AusNameOhneEnd
ZeichenKette := Trim(AusNameOhneEnd) "." AusEndung
i := 1
For k, v in ListeSonderZeichen {
k := (k = "A_Space") ? A_Space : k
OhneSonderZeichen := (i = 1) ? StrReplace(ZeichenKette, k, v) : StrReplace(OhneSonderZeichen,k, v)
i++
}
OhneSonderZeichen := RegExReplace(OhneSonderZeichen, "-+", "-")
Return OhneSonderZeichen
}
[quote]Kann man vielleicht noch global Dateien mit dem Attribut Hidden exkludieren? Das dürfte der sinnvollste Angang sein.
[/quote]
Ja, kann man:
[code]
#NoEnv
#Singleinstance Force
Setworkingdir, % A_ScriptDir
SetBatchLines, -1
#Persistent
ListeSonderZeichen := {"ß": "ss", "ö" : "oe", "ü":"ue", "ä":"ae", "A_Space" : "-", "_" : "-"} ;gegebenenfalls Liste erweitern
UploadOrdner := "C:\Temp\*.*" ;Ordnerpfad anpassen
SetTimer, OrdnerCheck, 300000 ;Überprüft alle 5 min. ob Dateinamen die Voraussetzungen erfüllen
Return
OrdnerCheck:
DateiNamenMitSonderZeichen := ""
Loop, Files, % UploadOrdner
{
FileGetAttrib, IstVersteckt, % A_LoopFileLongPath
if InStr(IstVersteckt, "H")
continue
if RegExMatch(A_LoopFileName, "[\sßöüäÄÜÖ]|[[:upper:]]")
DateiNamenMitSonderZeichen .= A_LoopFileDir "\" A_LoopFileName "|" A_LoopFileDir "\" SonderZeichenErsetzen(A_LoopFileName, ListeSonderZeichen) "`r`n"
}
if (DateiNamenMitSonderZeichen != "")
Loop, parse, DateiNamenMitSonderZeichen, `n, `r
{
if (A_LoopField = "")
continue
MsgBox,64,Ungültige Dateiname,% "Datei " StrSplit(A_LoopField, "|").1 " erfüllt die Voraussetzungen nicht, wird durch " StrSplit(A_LoopField, "|").2 " ersetzt!"
FileMove, % StrSplit(A_LoopField, "|").1, % StrSplit(A_LoopField, "|").2
}
Return
SonderZeichenErsetzen(ZeichenKette, ListeSonderZeichen){
ZeichenKette := Format("{:L}", ZeichenKette)
SplitPath, ZeichenKette ,,, AusEndung, AusNameOhneEnd
ZeichenKette := Trim(AusNameOhneEnd) "." AusEndung
i := 1
For k, v in ListeSonderZeichen {
k := (k = "A_Space") ? A_Space : k
OhneSonderZeichen := (i = 1) ? StrReplace(ZeichenKette, k, v) : StrReplace(OhneSonderZeichen,k, v)
i++
}
OhneSonderZeichen := RegExReplace(OhneSonderZeichen, "-+", "-")
Return OhneSonderZeichen
}
[/code]