Batch speichert eine PDF - falls Name vorhanden: umbenennen
Hi Leute,
ich habe eine Batch die eine PDF Datei ausliest und diese PDF mit den ausgelesenen Daten (eine Lieferscheinnummer) umbenennt - siehe Code unten.
Es kommt nun oft vor, dass die ausgelesene Lieferscheinnummer (als PDF) schon vorhanden ist und die Batch die PDF so nun nicht mehr umbenennen kann - es folgt ein Fehler.
Ich suche nun ein Befehl womit die Batch die PDF Datei eine "(2)" nach der Lieferscheinnummer anfügt - kann mir hier jemand helfen?
Vielen Dank vorab
ich habe eine Batch die eine PDF Datei ausliest und diese PDF mit den ausgelesenen Daten (eine Lieferscheinnummer) umbenennt - siehe Code unten.
Es kommt nun oft vor, dass die ausgelesene Lieferscheinnummer (als PDF) schon vorhanden ist und die Batch die PDF so nun nicht mehr umbenennen kann - es folgt ein Fehler.
Ich suche nun ein Befehl womit die Batch die PDF Datei eine "(2)" nach der Lieferscheinnummer anfügt - kann mir hier jemand helfen?
@Echo off & setlocal
For /f "Delims=" %%A in ('Dir /B /A-D ".\DOC*.pdf"') Do Call :ProcPDF "%%A" "%%~nA.txt"
Goto :Eof
:ProcPDF
pdftotext.exe %1
If defined Nummer set "Lieferschein-Nr."
for /f "Tokens=2" %%B in ( 'findstr /I "Lieferschein-Nr." %2 ' ) Do Call :Trim Nummer %%B
If Not Defined Nummer Echo Keine Nummer in %1 & goto :EOF
Ren %1 "%Nummer%.pdf"
Del %2 /Q 2>NUL
echo Lieferscheine %Nummer% %1 mit Leerzeichen fertig
Goto :Eof
:Trim
Set "%1=%2"
Goto :Eof
Vielen Dank vorab
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 597822
Url: https://administrator.de/forum/batch-speichert-eine-pdf-falls-name-vorhanden-umbenennen-597822.html
Ausgedruckt am: 23.12.2024 um 19:12 Uhr
12 Kommentare
Neuester Kommentar
Hallo,
Verständnisfrage: Müssen die Lieferscheine nicht fortlaufend nummeriert werden? Wieso kann es eine Lieferscheinnummer doppelt geben?
Lösung für dein Problem: Wenn du die Lieferscheinnummer hast, dann zähle wie viele Dateien die Nummer bereits im Namen enthalten. Speichere diese Anzahl in eine Variable und erhöhe diese um 1. Hänge diese Zahl an die Lieferscheinnummer.
Kann ich dir den Code dafür schreiben? Ja.
Mache ich das? Nein.
Warum nicht? Weil du den GoTo-Befehl benutzt.
Verständnisfrage: Müssen die Lieferscheine nicht fortlaufend nummeriert werden? Wieso kann es eine Lieferscheinnummer doppelt geben?
Lösung für dein Problem: Wenn du die Lieferscheinnummer hast, dann zähle wie viele Dateien die Nummer bereits im Namen enthalten. Speichere diese Anzahl in eine Variable und erhöhe diese um 1. Hänge diese Zahl an die Lieferscheinnummer.
Kann ich dir den Code dafür schreiben? Ja.
Mache ich das? Nein.
Warum nicht? Weil du den GoTo-Befehl benutzt.
Also du postest hier einen Code, der nicht von dir ist (und den du offenbar nicht verstehst) und möchtest die Lösung auch präsentiert haben?
oder anders:
Du hast eine Aufgabe bekommen, die Lösung ist von Freunden und Foren, funktioniert nicht und hier soll jetzt die funktionierende Lösung herkommen. Wieso bezahlt dein Chef dich und nicht die anderen?
Mein Tipp um voran zu kommen. Lerne PowerShell und mach es selbst oder gibt es jemanden, der es auch erweitern kann falls dies nötig sein wird. Dann helfen wir dir her gerne weiter.
oder anders:
Du hast eine Aufgabe bekommen, die Lösung ist von Freunden und Foren, funktioniert nicht und hier soll jetzt die funktionierende Lösung herkommen. Wieso bezahlt dein Chef dich und nicht die anderen?
Mein Tipp um voran zu kommen. Lerne PowerShell und mach es selbst oder gibt es jemanden, der es auch erweitern kann falls dies nötig sein wird. Dann helfen wir dir her gerne weiter.
Denkanstoß geben nennt sich das.
Fragenbezogener Denkanstoß: IF EXIST
Fragenbezogener Denkanstoß: IF EXIST
Hallo,
ich weiß nicht, ob das so klug ist, was Du vorhast. Wenn Du nur den Dateinamen matchst, wirst Du irgendwann derartige Konstrukte in deinem Ordner vorfinden:
47110815.pdf vom 20. März 2011
47110815(2).pdf vom 08.07.2016
47110815(2)(2).pdf vom 20.08.2020
[...]
Klüger wäre es, z.B. grundsätzlich das Datum anzuhängen. Die drei oben genannten Beipspiele würden dann so aussehen:
47110815_20110320.pdf
47110815_20160708.pdf
47110815_20200820.pdf
Ließe sich auch relativ leicht umsetzen.
Gruß,
Jörg
ich weiß nicht, ob das so klug ist, was Du vorhast. Wenn Du nur den Dateinamen matchst, wirst Du irgendwann derartige Konstrukte in deinem Ordner vorfinden:
47110815.pdf vom 20. März 2011
47110815(2).pdf vom 08.07.2016
47110815(2)(2).pdf vom 20.08.2020
[...]
Klüger wäre es, z.B. grundsätzlich das Datum anzuhängen. Die drei oben genannten Beipspiele würden dann so aussehen:
47110815_20110320.pdf
47110815_20160708.pdf
47110815_20200820.pdf
Ließe sich auch relativ leicht umsetzen.
Gruß,
Jörg
Hallo,
Ergänzung: Der Fehler liegt natürlich in dem Prozess, welcher die (doppelte) Lieferscheinnummer erzeugt. Doppelte Lieferscheine gibt es rein rechtlich gar nicht und technisch gibt es die nur, wenn Mitarbeiter faul sind und sich Recyclingprozesse ausdenken, die nicht mit den buchhalterisch Verantwortlichen abgestimmt sind.
Die "Goldrandlösung" wäre somit, in den Prozessen eindeutige Lieferscheinnummern zu generieren
Gruß,
Jörg
Ergänzung: Der Fehler liegt natürlich in dem Prozess, welcher die (doppelte) Lieferscheinnummer erzeugt. Doppelte Lieferscheine gibt es rein rechtlich gar nicht und technisch gibt es die nur, wenn Mitarbeiter faul sind und sich Recyclingprozesse ausdenken, die nicht mit den buchhalterisch Verantwortlichen abgestimmt sind.
Die "Goldrandlösung" wäre somit, in den Prozessen eindeutige Lieferscheinnummern zu generieren
Gruß,
Jörg