Hallo,
ich steh grade ziemlich auf der Leitung hinsichtlich der wechselseitigen abarbeitung 2er For-Schleifen :-(
Hintergrund: Das nachfolgende VBS merged PDF-Dateien. Dabei wird aus dem Verzeichnis "A" von der Datei "1" die letzte Seite entfernt und durch die Datei "2" (besteht nur aus einer Seite) ersetzt. Datei "2" liegt im Verzeichnis "B".
VBS:
In dieser Fassung, in der ich testhalber die Dateien und den "Output" vorgebe funktioniert das ganz so wie es soll!
Ich möchte nun mittels einer Batch die Verzeichnisse "A" und "B" wechselseitig durchlaufen und die jeweiligen Dateien dem VBS übergeben (also im 1. Lauf die jeweils 1. Datei aus dem Verzeichnis "A" und "B", im 2. Lauf die jeweils 2. Datei, im 3. die jeweils 3. Dateien, usw. bis alle abgearbeitet sind).
Wie müßen die beiden Schleifen korrekterweise aussehen um dies zu realisieren?
Ich habe das folgende versucht, jedoch nicht mit dem gewünschten Ergebnis, da ja logischerweise die innere Schleife komplett durchlaufen wird.
Irgendwie müßte da m.E. ein Zähler o.ä. rein(?)
Batch:
Da in "%%f" ja der komplette Pfad incl. Dateiname steht und dieser sich später nur durch _FINAL ändert, würde mich noch interessieren wie ich diesen so auseinanderpflücken bzw. zusammensetzen kann, damit ich mir im VBScript (durch einen 3. Parameter) auch die Hardcodierung von "destpath" ersparen kann?
Grüße
OpiWahn
P.S. Ein funktionierendes VBscript zum Splitten von PDF-Dateien habe ich bereits erfolgreich an Bord - damit werden die Dateien im Verzeichnis "B" erzeugt
ich steh grade ziemlich auf der Leitung hinsichtlich der wechselseitigen abarbeitung 2er For-Schleifen :-(
Hintergrund: Das nachfolgende VBS merged PDF-Dateien. Dabei wird aus dem Verzeichnis "A" von der Datei "1" die letzte Seite entfernt und durch die Datei "2" (besteht nur aus einer Seite) ersetzt. Datei "2" liegt im Verzeichnis "B".
VBS:
Visual Basic:
'InFile1 = WScript.Arguments(0)
'InFile2 = WScript.Arguments(1)
'OutFile = WScript.Arguments(2)
Set App = CreateObject("AcroExch.App")
Set AVDoc = CreateObject("AcroExch.AVDoc")
Set baseDoc = CreateObject("AcroExch.PDDoc")
Set insertDoc = CreateObject("AcroExch.PDDoc")
srcPath = "C:\PrintSplitMerge\Reports\TM August 2013.pdf" 'kann raus
srcPath2 = "C:\PrintSplitMerge\SignPg\SignPage_001.pdf" 'kann raus
destPath = "C:\PrintSplitMerge\Reports\TM August 2013_FINAL.pdf" 'kann raus
baseDoc.Open srcPath '<- InFile1
endPage = baseDoc.GetNumPages() - 1
insertDoc.Open srcPath2 '<- InFile2
baseDoc.ReplacePages endPage, insertDoc, 0, insertDoc.GetNumPages(), 0
baseDoc.Save &H1, destPath '<- OutFile
App.CloseAllDocs
App.Exit
Set insertDoc = Nothing
Set baseDoc = Nothing
Set AVDoc = Nothing
Set App = Nothing
Wscript.Quit(0)
In dieser Fassung, in der ich testhalber die Dateien und den "Output" vorgebe funktioniert das ganz so wie es soll!
Ich möchte nun mittels einer Batch die Verzeichnisse "A" und "B" wechselseitig durchlaufen und die jeweiligen Dateien dem VBS übergeben (also im 1. Lauf die jeweils 1. Datei aus dem Verzeichnis "A" und "B", im 2. Lauf die jeweils 2. Datei, im 3. die jeweils 3. Dateien, usw. bis alle abgearbeitet sind).
Wie müßen die beiden Schleifen korrekterweise aussehen um dies zu realisieren?
Ich habe das folgende versucht, jedoch nicht mit dem gewünschten Ergebnis, da ja logischerweise die innere Schleife komplett durchlaufen wird.
Irgendwie müßte da m.E. ein Zähler o.ä. rein(?)
Batch:
Code:
@echo off & setlocal enableDelayedExpansion
set root=%~dp0
set inp=%~dp0input\
set pro=%~dp0prog\
set rep=%~dp0reports\
set sig=%~dp0signpg\
set wks=%~dp0temp\
for %%f in (%rep%*.pdf) do (
for %%g in (%sig%*.pdf) do cscript //nologo "%pro%replacePages0.vbs" "%%f" "%%g"
)
Da in "%%f" ja der komplette Pfad incl. Dateiname steht und dieser sich später nur durch _FINAL ändert, würde mich noch interessieren wie ich diesen so auseinanderpflücken bzw. zusammensetzen kann, damit ich mir im VBScript (durch einen 3. Parameter) auch die Hardcodierung von "destpath" ersparen kann?
Grüße
OpiWahn
P.S. Ein funktionierendes VBscript zum Splitten von PDF-Dateien habe ich bereits erfolgreich an Bord - damit werden die Dateien im Verzeichnis "B" erzeugt

Zuletzt bearbeitet: