Batch-Skript um herauszufinden ob zugehörige Index-Datei im Verzeichnis existiert
Hallo zusammen,
folgendes möchte ich herausfinden:
In einem Verzeichnis (C:\Temp\Alle) liegen zu einem Beleg drei verschiedene Dateien:
Beleg.pdf
Beleg.jpl
Beleg.ocr
Nun fehlen bei einigen Beleg.pdf die zugehörige JPL-Dateien.
Die JPL-Datei hat immer jeweils den gleichen Dateinamen wie die PDF-Datei.
Jetzt möchte ich herausfinden, bei welchen PDF-Belegen die JPL-Datei fehlt und diese Belege alle in ein anderes Verzeichnis (z.B. nach C:Temp\Fehler) verschieben.
Wie könnte so ein Batch Skript aussehen?
Vielen Dank im Voraus!
folgendes möchte ich herausfinden:
In einem Verzeichnis (C:\Temp\Alle) liegen zu einem Beleg drei verschiedene Dateien:
Beleg.pdf
Beleg.jpl
Beleg.ocr
Nun fehlen bei einigen Beleg.pdf die zugehörige JPL-Dateien.
Die JPL-Datei hat immer jeweils den gleichen Dateinamen wie die PDF-Datei.
Jetzt möchte ich herausfinden, bei welchen PDF-Belegen die JPL-Datei fehlt und diese Belege alle in ein anderes Verzeichnis (z.B. nach C:Temp\Fehler) verschieben.
Wie könnte so ein Batch Skript aussehen?
Vielen Dank im Voraus!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 337498
Url: https://administrator.de/forum/batch-skript-um-herauszufinden-ob-zugehoerige-index-datei-im-verzeichnis-existiert-337498.html
Ausgedruckt am: 30.04.2025 um 09:04 Uhr
3 Kommentare
Neuester Kommentar

@echo off
for %%a in ("c:\Temp\alle\*.pdf") do (
if not exist "%%~dpna.jpl" move "%%a" "c:\temp\fehler"
)

Sorry, Tippfehler, ist oben korrigiert.
ein
Mit %%~dpna bekommst du den LW Buchstaben (d), den Pfad (p) und den Namen der Datei (n) ohne Dateierweiterung, und an das hängt man noch das .jpl an, fertig.
Was bedeutet "%%dpna.jpl"? Wenn %%a die Variable für den Dateinamen ist, müsste es dann nicht %%a.jpl heißen?
Nein! Wie gesagt ein Tippfehler von mir, die Tilde (~) fehlte ...ein
for /?
sagts dirMit %%~dpna bekommst du den LW Buchstaben (d), den Pfad (p) und den Namen der Datei (n) ohne Dateierweiterung, und an das hängt man noch das .jpl an, fertig.
Zusätzlich wurde die Ersetzung von Verweisen auf FOR-Variablen erweitert.
Sie können jetzt folgende Syntax verwenden:
%~I - Expandiert %I und entfernt alle umschließenden
Anführungszeichen (").
%~fI - Expandiert %I zu einem vollständigen Dateinamen.
%~dI - erstellt nur den Laufwerkbuchstaben von %I.
%~pI - erstellt nur den Pfad von %I.
%~nI - erstellt nur den Dateinamen von %I.
%~xI - erstellt nur die Dateierweiterung von %I.
%~sI - erstellter Pfad enthält nur kurze Dateinamen.
%~aI - erstellt die Dateiattribute von %I.
%~tI - erstellt Datum und Zeit von %I.
%~zI - erstellt die Dateigröße von %I.
%~$PATH:I - Durchsucht die in der PATH-Umgebungsvariablen
angegebenen Verzeichnisse und expandiert die erste
gefundene Datei %I zu dem vollständigen Dateinamen.
Wenn der Name der Umgebungsvariablen nicht definiert
ist oder diese Datei bei der Suche nicht gefunden wurde,
wird dieser Parameter zu einer leeren Zeichenfolge
expandiert.
Diese Parameter können auch miteinander kombiniert werden:
%~dpI - erstellt den Laufwerkbuchstaben und Pfad von %I.
%~nxI - erstellt den Dateinamen und die Dateierweiterung von %I.
%~fsI - Expandiert %I zu einem vollständigen Namen, der nur
kurze Dateinamen enthält.
%~dp$PATH:I - Durchsucht die in der PATH-Umgebungsvariablen
angegebenen Verzeichnisse nach %I und erstellt den
Laufwerkbuchstaben und Pfad der ersten gefundenen Datei.
%~ftzaI - Expandiert %I zu einer Zeile, die der Ausgabe des DIR-
Befehls entspricht.