Txt Inhalt in batch variabel verwenden
Liebes Forum ich bin neu dabei und freu mich wenn mir jemand helfen kann.
Ich versuche per .bat file aus einzelnen pdfs eine pdf zu erzeugen.
Diese Variante funktioniert auch aber nur wenn im txt-file die einzelnen files hintereinander mit einem Leerzeichen aufgeführt werden.
file1.pdf file2.pdf file3.pdf
leider habe ich nur ein txt-file wo die einzelnen Files untereinander stehen.
file1.pdf
file2.pdf
file3.pdf
jetzt habe ich einiges gelesen, dass es mit einer Schleife möglich sein sollte.
Kann mir hier jemand helfen? Bitte!
Ich versuche per .bat file aus einzelnen pdfs eine pdf zu erzeugen.
Diese Variante funktioniert auch aber nur wenn im txt-file die einzelnen files hintereinander mit einem Leerzeichen aufgeführt werden.
file1.pdf file2.pdf file3.pdf
@echo off
SET /p fn=Auftrag:
SET /p list=<%fn%.txt
C:\PDFtkServer\bin\pdftk.exe %list% cat output %fn%.pdf
leider habe ich nur ein txt-file wo die einzelnen Files untereinander stehen.
file1.pdf
file2.pdf
file3.pdf
jetzt habe ich einiges gelesen, dass es mit einer Schleife möglich sein sollte.
Kann mir hier jemand helfen? Bitte!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 350722
Url: https://administrator.de/contentid/350722
Ausgedruckt am: 23.11.2024 um 11:11 Uhr
17 Kommentare
Neuester Kommentar
Hallo,
Dann wirst du deine Quelle halt umschreiben müssen. Such mal nach z.B. "batch textdatei site:administrator.de" und du wirst auch diesen hier finden Batch- Textdatei Zeilenweise auslesen
Gruß,
Peter
Dann wirst du deine Quelle halt umschreiben müssen. Such mal nach z.B. "batch textdatei site:administrator.de" und du wirst auch diesen hier finden Batch- Textdatei Zeilenweise auslesen
Gruß,
Peter
Wenn ich dich richtig verstanden habe, brauchst du alle Dateinamen aus der Textdatei leerzeichengetrennt in Variable list.
Ungetestet:
Grüße
rubberman
Ungetestet:
@echo off &setlocal EnableDelayedExpansion
set /p "fn=Auftrag: "
if not exist "!fn!.txt" exit /b
set "list="
<"!fn!.txt" (
for /f %%i in ('type "!fn!.txt"^|find /c /v ""') do for /l %%j in (1 1 %%i) do (
set "line=" & set /p "line="
if defined line set "list=!list!"!line!" "
)
)
call "C:\PDFtkServer\bin\pdftk.exe" !list! cat output "!fn!.pdf"
Grüße
rubberman
Moin quan81,
wenn du dieselbe Frage in mehreren Foren stellst, dann verlinke die Beiträge bitte.
Also gib in jedem Forum an, wo sich ahnungslose Helfer doppelte Arbeit machen.
Hier zum Beispiel wäre ein Link auf https://www.tutorials.de/threads/txt-inhalt-in-batch-variabel-verwenden. ... angebracht.
In dem anderen Forum ein Link auf diesen Beitrag.
Grüße
Biber
wenn du dieselbe Frage in mehreren Foren stellst, dann verlinke die Beiträge bitte.
Also gib in jedem Forum an, wo sich ahnungslose Helfer doppelte Arbeit machen.
Hier zum Beispiel wäre ein Link auf https://www.tutorials.de/threads/txt-inhalt-in-batch-variabel-verwenden. ... angebracht.
In dem anderen Forum ein Link auf diesen Beitrag.
Grüße
Biber
Um zu wissen ob ein relativer Pfad irgend einen Unterschied machen würde, müsste man wissen, wie lang dein "Hauptpfad" ist. Wenn du am Ende das String-Limit von 8191 Zeichen trotzdem Überschreites, bringt das nichts.
Vorschlag (wieder ungetestet):
Grüße
rubberman
Vorschlag (wieder ungetestet):
@echo off &setlocal EnableDelayedExpansion
set /p "fn=Auftrag: "
if not exist "!fn!.txt" exit /b
set "list="
set /a "sum=0"
<"!fn!.txt" (
for /f %%i in ('type "!fn!.txt"^|find /c /v ""') do for /l %%j in (1 1 %%i) do (
set "line=" & set /p "line="
if defined line (
set "list=!list!!line! "
set "str=A!line!"
set "len=0"
for /l %%k in (12,-1,0) do (
set /a "len|=1<<%%k"
for %%l in (!len!) do if "!str:~%%l,1!"=="" set /a "len&=~1<<%%k"
)
set /a "sum+=len"
if !sum! gtr 7000 (
call "C:\PDFtkServer\bin\pdftk.exe" !list! cat output "!fn!_tmp.pdf"
move /y "!fn!_tmp.pdf" "!fn!.pdf"
set "list="!fn!.pdf" "
set /a "sum=0"
)
)
)
)
call "C:\PDFtkServer\bin\pdftk.exe" !list! cat output "!fn!_tmp.pdf"
move /y "!fn!_tmp.pdf" "!fn!.pdf"
rubberman
Moin quan81,
der Vollständigkeit halber:
Hast du denn mal versucht, ob nicht ein einfacher Aufruf mit Wildcards auch zum Ziel führt?
Wäre doch schön, wenn pdftk Wildcards verarbeiten könnte und wenn doch eh' alle PDFs in dem Ordner zusammengedampft werden sollen...
Grüße
Biber
der Vollständigkeit halber:
Hast du denn mal versucht, ob nicht ein einfacher Aufruf mit Wildcards auch zum Ziel führt?
Set "meinePDFs=\\SRV01\ORDERBASE ERP 3.0\DATENARCHIV SPEICHERORTE\SONSTIGES\*.pdf"
"C:\PDFtkServer\bin\pdftk.exe" "%meinePDFs%" cat output "!fn!_tmp.pdf"
Wäre doch schön, wenn pdftk Wildcards verarbeiten könnte und wenn doch eh' alle PDFs in dem Ordner zusammengedampft werden sollen...
Grüße
Biber