kami-katze
Goto Top

Batch zum Starten von Programmen mit Variablen Dateinamen als Parameter

Halli Hallo

Ich bräuchte eine Batchdatei die einen Ordner auf vorhandensein von PDF Dateien prüft und bei Treffer ein Programm startet das als Parameter den Dateinamen beinhaltet.

Meine Versuche mit (DIR "C:\Archiv\*.pdf /B) scheinen keine Früchte zu tragen das man das Ergebnis scheinbar nicht als Parameter übergeben kann...

Zumindest funktioniert (DIR "C:\Test\" /B | SET A= | CALL "C:\Program Files (x86)\Adobe\Reader 9.0\Reader\AcroRd32.exe" C:\Test\) nicht. Ein weiteres Problem könnte es hier meines erachtens auch sein das durchaus mehrere Dateien gefunden werden könnten.

Der Ordner ist
C:\Test\

Das Programm hat folgenden Pfad
\\server\dms$\PrintJobPdf.exe

Und Folgende Paramter
profile="\\server\dms$\Print.ini" (Pfad für konfiguration des Programms)
pdffile="%1" (Pfad und Dateiname der PDF)

Das Programm löscht die PDF Datei automatisch nach der Verarbeitung

Ich hoffe ihr könnt mir dabei helfen
Kommentar vom Moderator Biber am 02.11.2009 um 15:47:44 Uhr
Verschoben von "Tools & Utilities" nach "Batch & Shell".

Content-ID: 128453

Url: https://administrator.de/forum/batch-zum-starten-von-programmen-mit-variablen-dateinamen-als-parameter-128453.html

Ausgedruckt am: 23.12.2024 um 01:12 Uhr

5t8d1e
5t8d1e 02.11.2009 um 15:02:51 Uhr
Goto Top
Hallo,
hier der "code" für eine Batch.

for /r %%a in ( *.pdf) do start /wait \\server\dms$\PrintJobPdf.exe\%%a

was du mit den restlichen Variabeln machst, ist aus deinen Posting nich erkennbar

Torsten
kami-kaTze
kami-kaTze 02.11.2009 um 16:01:47 Uhr
Goto Top
Also z.B.:

for /r %%a in ( C:\Archiv\*.pdf) do start /wait \\server\dms$\PrintJobPdf.exe profile="\\server\dms$\Print.ini" pdffile="C:\Archiv\%%a"

Ist die Syntax so korrekt ? leider scheint es nicht zu funktionieren...
5t8d1e
5t8d1e 02.11.2009 um 16:28:36 Uhr
Goto Top
Hallo,

die zeile war vorhins nur mal so hin geworfen.
hier ein besserer Vorschlag:

SET wPath = C:\Archiv
SET prof=profile=\\server\dms$\Print.ini
SET runexe=\\server\dms$\PrintJobPdf.exe
for /r %wPath% %%a in (*.pdf) do ECHO start /wait "%runexe% %prof% pdffile="%wPath\%%a"


Torsten

PS.: Das ECHO muss natürlich noch entfernt werden face-wink
bastla
bastla 02.11.2009 um 16:30:09 Uhr
Goto Top
Hallo kami-ka-Tze!
Ist die Syntax so korrekt ?
Nein (siehe "for /?"), und die Fehlerbeschreibung "leider scheint es nicht zu funktionieren" hat auch noch Verbesserungspotential ...

Der Startordner muss vor die Laufvariable:
for /r C:\Archiv %%a in (*.pdf) do ...
Grüße
bastla
bastla
bastla 02.11.2009 um 16:33:21 Uhr
Goto Top
@5t8d1e
Der erste nach einem "start" unter Anführungszeichen folgende Wert wird als Fenstertitel interpretiert, daher besser:
for /r "%wPath%" %%a in (*.pdf) do ECHO start /wait "Bearbeitung mit PrintJobPdf" "%runexe%" %prof% pdffile="%%~a"
Noch als Ergänzung: Da "for /r" einen vollständigen Pfad liefert, genügt am Ende "%%~a" (oder, ganz ausführlich, "%%~fa").

Grüße
bastla
5t8d1e
5t8d1e 03.11.2009 um 08:35:31 Uhr
Goto Top
Hallo Bastla,

danke für den Kommentar. Wird soeben in die grauen Zellen abgelegt.

Schönen Tag noch

Torsten