Powershell - Automatisierung in der Dateiablage
Hallo Zusammen,
wir haben ein kleine Anwendung die automatisch Daten wegsortiert. Diese soll nun durch eine Powershell + Aufgabenüberwachtung ersetzt werden.
Was soll passieren?
1) aktive Auftragsnummern werden in Array eingelesen (MS SQL-Server) [erledigt]
2) Dateiname (string) wird mit Like auf Vorhandensein einer Nummer prüfen
3) in Verzeichnis verschieben [erledigt]
Nun habe ich eine Frage zu Schritt 2:
Lasse ich nun durch alle Auftragsnummern im Array ein For-Each-Schleife laufen und wenn ich einen Treffer habe break und dann Schritt 3?
Alternative wäre, im String auf eine Zahl zu casten und diese dann im Array zu suchen?
Welche Variante wird mir eine höhere Performance bieten? Es geht eher um eine kleine Menge an Auftragsnummern (5.000).
Viele Grüße,
John
wir haben ein kleine Anwendung die automatisch Daten wegsortiert. Diese soll nun durch eine Powershell + Aufgabenüberwachtung ersetzt werden.
Was soll passieren?
1) aktive Auftragsnummern werden in Array eingelesen (MS SQL-Server) [erledigt]
2) Dateiname (string) wird mit Like auf Vorhandensein einer Nummer prüfen
3) in Verzeichnis verschieben [erledigt]
Nun habe ich eine Frage zu Schritt 2:
Lasse ich nun durch alle Auftragsnummern im Array ein For-Each-Schleife laufen und wenn ich einen Treffer habe break und dann Schritt 3?
Alternative wäre, im String auf eine Zahl zu casten und diese dann im Array zu suchen?
Welche Variante wird mir eine höhere Performance bieten? Es geht eher um eine kleine Menge an Auftragsnummern (5.000).
Viele Grüße,
John
Please also mark the comments that contributed to the solution of the article
Content-Key: 382573
Url: https://administrator.de/contentid/382573
Printed on: April 24, 2024 at 09:04 o'clock
2 Comments
Latest comment
Welche Variante wird mir eine höhere Performance bieten?
Teste doch einfach selbst mit "Measure-Command" . Beispiel$dateiname = "Hallo das ist ein 888 test.jpg"
[array]$numbers = 1..5000
# Extrahieren von Value und Array Check
(Measure-Command {
[regex]::Match($dateiname,'\d+').Value -in $numbers
}).TotalMilliseconds
# Mit Regex
(Measure-Command {$dateiname -match ( $numbers -join '|')}).TotalMilliseconds
# Mit Schleife
(Measure-Command {
$numbers | %{
if($dateiname -like "*$_*"){
return
}
}
}).TotalMilliseconds