frad1980
Goto Top

Dateien in einem Verzeichnis mergen - rekursiv

HAllo,

ich habe folgende Ordner Struktur:

100
200
300
usw.

In jedem Ordner sind PDF Dateien abgelegt.

Mittels einem Programm pdfsam kann ich diese bereits mergen. Soweit so gut.

ICh möchte allerdings pro Ordner diesen Mergevorgang durchführen.

In den jeweiligen Verzeichnissen liegen PDF Dateien, welche mit test_.pdf beginnen. Diese möchte ich mittels merge zu einer Datei zusammenfügen. Aber wie gesagt - das Skript soll in jeden Ordner springen und prüfen, ob es diese Dateien gibt, wenn ja, dann soll der Programmaufruf zum PDF merge erfolgen.

Wie könnte ich so etwas lösen?

Grüße

Content-Key: 318571

Url: https://administrator.de/contentid/318571

Ausgedruckt am: 29.03.2024 um 12:03 Uhr

Mitglied: 131223
131223 20.10.2016 um 19:46:30 Uhr
Goto Top
For-Schleife:
@echo off
for /d %%a in ("C:\Oberordner\*") do (  
    if exist "%%a\test_*.pdf" (  
     echo do something here
   )
)
Mitglied: frad1980
frad1980 20.10.2016 um 19:57:43 Uhr
Goto Top
Danke für die schnelle Antwort. Ich habe mal einen Ordner unter C: angelegt (Oberordner), darunter zwei Ordner 100 und 200.

das echo habe ich durch ein "md test" ersetzt, um zu sehen ob der Befehl auch ausgeführt wird. Leider kommt das Script nicht in den Ordner 100 und 200 ...
Mitglied: 131223
131223 20.10.2016 aktualisiert um 20:08:24 Uhr
Goto Top
Doch tut es, in der Variablen %%a steht das Verzeichnis face-wink
du machst also ein
md "%%a\test"  

Und den Oberordner musst du so angeben: "C:\Oberordner\*" (mit Sternchen am Ende)

Und was meinst du was das hier bedeutet?
if exist "%%a\test_*.pdf" (
Also nur wenn eine Datei mit dem Muster sich im jeweiligen Ordner befindet wird das darunter ausgeführt!

Lese die Hilfe.

Ein for /? zeigts dir!
Mitglied: Endoro
Endoro 21.10.2016 um 14:32:47 Uhr
Goto Top
Zitat von @frad1980:
Mittels einem Programm pdfsam kann ich diese bereits mergen. Soweit so gut.

Hey,
was verstehst du denn unter "mergen"? Da gibt es mindestens zwei denkbare Möglichkeiten:
1. Dateien simpel zusammenfügen
2. Seite-1 von Datei-1 + Seite-1 von Datei-2 + Seite-1 von Datei-3 + ... + Seite-2 von Datei-1 + Seite-2 von Datei-2 + Seite-2 von Datei-3 ... usw.

Gruß, Endoro
Mitglied: frad1980
frad1980 23.10.2016 um 19:37:27 Uhr
Goto Top
Hi, habe da jetzt einiges hin un her probiert. Leider wird in dem Verzeichnis C:\Oberordner\100 kein Test Ordner angelegt, obwohl sich zwei Dateien mit test_111.pdf und test_222.pdf in dem Verezcihnis befinden.

@echo off
for /d %%a in ("C:\Oberordner") do (  
    if exist "%%a\test_*.pdf" (  
     md "%%a\test"  
   )
)
Mitglied: 131223
Lösung 131223 23.10.2016 aktualisiert um 19:42:32 Uhr
Goto Top
Schau dir meinen Code doch bitte noch mal genau an!
Du hast den Wildcard im Pfad (Zeile 2) vergessen, habe ich in meinem letzten Post explizit nochmal geschrieben, und du machst es wieder falsch!
Mitglied: frad1980
frad1980 23.10.2016 um 19:45:36 Uhr
Goto Top
sorry - du hast Recht. Genauer lesen hätte geholfen. Grüße
Mitglied: frad1980
frad1980 26.10.2016 um 21:25:55 Uhr
Goto Top
hätte da noch eine Frage. Ich will mittels pdftk die Dateien mergen:

pdftk test_* cat output test.pdf

Funktioniert auch soweit ganz gut. Wie würdest du noch zusätzlich eine Sicherheitsabfrage einbauen? Wenn bspw. das mergen nicht klapt?
Mitglied: frad1980
frad1980 26.10.2016 um 21:30:45 Uhr
Goto Top
Der pdftk Befehl soll in jedem Ordner ausgeführt werden, wo die Bedingung greift. Allerdings funktioniert das so nicht, da die PDF Dateien nicht gefunden werden laut pdftk ...

for /d %%a in ("C:\Oberordner\*") do (
if exist "%%a\test_*.pdf" (
pdftk test_* cat output test.pdf
)
)
Mitglied: rubberman
rubberman 26.10.2016 um 21:54:02 Uhr
Goto Top
Hallo frad1980.

Natürlich findet pdftk die Dateien nicht. Der Pfad ist nicht angegeben.
Teste
for /d %%a in ("C:\Oberordner\*") do (  
  if exist "%%a\test_*.pdf" (  
    pdftk "%%a\test_*.pdf" cat output "%%a\test.pdf"  
  )
)

Grüße
rubberman