Neu Batch/PowerShell Script ... fehlende Rechnungsnummern finden, Lücken im Nummernkreis (PDF-Ablage in Verzeichnis)

wawi-dl

Sehr aktives Mitglied
29. April 2008
5.922
568
Guten Morgen,

wir suchen ein Script, das fehlende Rechnungsnummern aufspüren kann.

Leider mussten wir feststellen, dass der JTL- Workflow-Prozess wohl nicht immer sauber arbeitet, somit Rechnungen zwar in JTL angelegt sind, aber nicht ausgeleitet wurden.
Unsere Rechnungen werden in ecoDMS abgelegt, zusätzlich aber auch eine Kopie auf einem Server für den Schnellzugriff.

Wir konnten feststellen, dass wenn eine Nummer in ecoDMS fehlte, auch im Ablageort fehlte, könnten so also frühzeitig reagieren.

Hat jemand ein solches Script gebaut?
Batch ist hier bei vielen Objekten überfordert und zu langsam, PowerShell wird hier deutlich performanter sein.


Anforderungen:
- Angabe eines Wurzelverzeichnisses
- Durchsuchung von Wurzelverzeichnis + Unterordner
- Angabe von Suffix/Präfix (Beispiel: "Rechnung 012345.pdf")


Im Verzeichnis liegen Rechnung, die teilweise fehlen und aufgespürt werden sollen, hier fehlt z.B. "Rechnung 012342.pdf":
...
Rechnung 012340.pdf
Rechnung 012341.pdf
Rechnung 012343.pdf
Rechnung 012344.pdf
...

Ich denke ein solches Tool sollte auch für andere interessant sein :)

Vielen Dank
 
Zuletzt bearbeitet:

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.261
337
Batch ist hier bei vielen Objekten überfordert und zu langsam, PowerShell wird hier deutlich performanter sein.
Ich habe jetzt zwar nicht ganz verstanden, nach was du suchen willst bzw. wie das Ergebnis dann aussehen muss, wollt aber nur mal sagen, dass Powershell ja nicht grundsätzlich performanter läuft. Es kommt ja vielmehr darauf an, was du programmieren willst und wenn die Anforderungen sich nicht mehr mir Batch umsetzen lassen, muss eben was anderes her.


Anforderungen:
- Angabe eines Wurzelverzeichnisses
- Durchsuchung von Wurzelverzeichnis + Unterordner
- Angabe von Suffix/Präfix (Beispiel: "Rechnung 012345.pdf")
Ich würde z.b. bezweifeln, dass ein Shellscript (das ja dann vermutlich irgendwelche .NET API Funktionen reinlädt und aufruft) schneller sucht als z.b. dir /s /p Rechnung*.pdf
 

wawi-dl

Sehr aktives Mitglied
29. April 2008
5.922
568
Wir hatten damals ein Script, vermutlich stammte dies von Robert @T4DT.GmbH ... meinen wir zumindest, dieses läuft aber wohl nicht mehr.

Verzeichnisstruktur sieht so aus:
A:\Rechnungen\Rechnungen_2022
A:\Rechnungen\Rechnungen_2022\2022-01
A:\Rechnungen\Rechnungen_2022\2022-01\Firma1
A:\Rechnungen\Rechnungen_2022\2022-01\Firma2
A:\Rechnungen\Rechnungen_2022\2022-01\Firma3
A:\Rechnungen\Rechnungen_2022\2022-02
A:\Rechnungen\Rechnungen_2022\2022-02\Firma1
A:\Rechnungen\Rechnungen_2022\2022-02\Firma2
A:\Rechnungen\Rechnungen_2022\2022-02\Firma3
...


# Quellverzeichnis
# $Source = "A:\"
$Source = "A:\Rechnungen\Rechnungen_2022"

# Alle Nummern der PDF-Dateien auflisten
# $Num = Get-ChildItem -File -Recurse "$Source\*.pdf" | Where-Object BaseName -Match "\d+$" | Foreach-Object { [int]$Matches.0 }
$Num = Get-ChildItem -File -Recurse "$Source\*.pdf" | Where-Object BaseName -Match "\d+$" | Foreach-Object { [long]$Matches.0 }

# Minimum/Maximumwerte filtern
$min_max = $Num | Measure -Minimum -Maximum

# fehlende Nummern ausgeben
$min_max.Minimum..$min_max.Maximum | Where-Object { $Num -NotContains $_ }