Batch liest Informationen aus TXT und verarbeitet sie weiter
Hallo Freunde,
Ich habe folgendes problem
Ich habe einen Stapel Papier, dieser gehört eingescannt und an ca 60 leute gemailt.
Der Stapel hat ung. 20 Kategorien und nicht jeder bekommt alles, also muss für jeden Sortiert werden und das dauert natürlich sehr lange.
Da ich in dieser Zeit den Kopierer/Scanner belege kann niemand an dem Gerät arbeiten also habe ich mir folgendes überlegt.
Nachdem ich jede Kategorie einzeln eingescannt habe und sie als, 1.pdf, 2.pdf, 3.pdf gespeichert habe, muss ich aus diesen pdf ein ganzes machen dies mach ich mit Gswin32
GhostScript/Freepdf
Danach Versende ich mit Blat / Mail programm
Die Kategorien werden eingescannt:
-Ordner Struktur-
\SCAN\SCAN
1.pdf 2.pdf 3.pdf etc...
\SCAN\SEND
Empfänger1
Empfänger2
Empfänger3
Empfänger4
SCAN\BATCH
Pdfconvert.bat
---> Pdfconvert.bat
@echo off
C:\Scan\GSWIN\gswin32 -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=C:\Scan\SEND\Empfänger1\Example.pdf
-dBATCH C:/Scan/SCAN/1.pdf
Ich hab mir überlegt wenn man anstatt
-sOUTPUTFILE=C:\Scan\SEND\ "Empfänger1" \Example.pdf
Eine Variable einfügt, die ihm sagt nimm als erstes Empfänger1 dann Empfänger2 etc
und bei
-dBATCH C:/Scan/SCAN/1.pdf C:/Scan/SCAN/2.pdf C:/Scan/SCAN/3.pdf
anstatt C:/Scan/SCAN/1.pdf C:/Scan/SCAN/2.pdf C:/Scan/SCAN/3.pdf
auch eine Variable setzt die er sich ausliest z.b aus dem Ordner
C:\Scan\SEND\Empfänger1\Variable.txt
und in der Variable steht drin.
C:/Scan/SCAN/1.pdf C:/Scan/SCAN/5.pdf C:/Scan/SCAN/6.pdf C:/Scan/SCAN/10.pdf C:/Scan/SCAN/22.pdf
Ich weis leider nicht wie ich das Trennen kann
C:/Scan/SCAN/1.pdf 2.pdf 3.pdf geht nicht, aber ist sicher machbar
so
also ich will im eigentlichen sinne, das dass script sich den Pfad aus dem es die Pdf´s holen soll aus einer txt bezieht,
und Den pfad in dem er die zusammengefügten Pdf´s ablegen soll aus einer TXT zieht.
Dann stell ich mir vor die Txt mit einer art
HTML frontend zu bearbeiten wo ich mir kästchen reinbaue und ich anklicken kann ob Empfänger1 z.b 1.pdf 2.pdf oder 1.pdf 5.pdf bekommen soll
Phew ich hoff ich mach hier nicht allzuviel schwachsinn
würde halt richtig fix gehn wenn das alles läuft
Ich hoffe mir kann jemand erklären wie das alles mit den Variablen und so funktioniert, ich will ja nicht das hier jemand einganzes script schreibt sondern ich will das verstehen
Merci !
Ich habe folgendes problem
Ich habe einen Stapel Papier, dieser gehört eingescannt und an ca 60 leute gemailt.
Der Stapel hat ung. 20 Kategorien und nicht jeder bekommt alles, also muss für jeden Sortiert werden und das dauert natürlich sehr lange.
Da ich in dieser Zeit den Kopierer/Scanner belege kann niemand an dem Gerät arbeiten also habe ich mir folgendes überlegt.
Nachdem ich jede Kategorie einzeln eingescannt habe und sie als, 1.pdf, 2.pdf, 3.pdf gespeichert habe, muss ich aus diesen pdf ein ganzes machen dies mach ich mit Gswin32
GhostScript/Freepdf
Danach Versende ich mit Blat / Mail programm
Die Kategorien werden eingescannt:
-Ordner Struktur-
\SCAN\SCAN
1.pdf 2.pdf 3.pdf etc...
\SCAN\SEND
Empfänger1
Empfänger2
Empfänger3
Empfänger4
SCAN\BATCH
Pdfconvert.bat
---> Pdfconvert.bat
@echo off
C:\Scan\GSWIN\gswin32 -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=C:\Scan\SEND\Empfänger1\Example.pdf
-dBATCH C:/Scan/SCAN/1.pdf
Ich hab mir überlegt wenn man anstatt
-sOUTPUTFILE=C:\Scan\SEND\ "Empfänger1" \Example.pdf
Eine Variable einfügt, die ihm sagt nimm als erstes Empfänger1 dann Empfänger2 etc
und bei
-dBATCH C:/Scan/SCAN/1.pdf C:/Scan/SCAN/2.pdf C:/Scan/SCAN/3.pdf
anstatt C:/Scan/SCAN/1.pdf C:/Scan/SCAN/2.pdf C:/Scan/SCAN/3.pdf
auch eine Variable setzt die er sich ausliest z.b aus dem Ordner
C:\Scan\SEND\Empfänger1\Variable.txt
und in der Variable steht drin.
C:/Scan/SCAN/1.pdf C:/Scan/SCAN/5.pdf C:/Scan/SCAN/6.pdf C:/Scan/SCAN/10.pdf C:/Scan/SCAN/22.pdf
Ich weis leider nicht wie ich das Trennen kann
C:/Scan/SCAN/1.pdf 2.pdf 3.pdf geht nicht, aber ist sicher machbar
so
also ich will im eigentlichen sinne, das dass script sich den Pfad aus dem es die Pdf´s holen soll aus einer txt bezieht,
und Den pfad in dem er die zusammengefügten Pdf´s ablegen soll aus einer TXT zieht.
Dann stell ich mir vor die Txt mit einer art
HTML frontend zu bearbeiten wo ich mir kästchen reinbaue und ich anklicken kann ob Empfänger1 z.b 1.pdf 2.pdf oder 1.pdf 5.pdf bekommen soll
Phew ich hoff ich mach hier nicht allzuviel schwachsinn
würde halt richtig fix gehn wenn das alles läuft
Ich hoffe mir kann jemand erklären wie das alles mit den Variablen und so funktioniert, ich will ja nicht das hier jemand einganzes script schreibt sondern ich will das verstehen
Merci !
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 83410
Url: https://administrator.de/forum/batch-liest-informationen-aus-txt-und-verarbeitet-sie-weiter-83410.html
Ausgedruckt am: 22.04.2025 um 09:04 Uhr
2 Kommentare
Neuester Kommentar
Also vom Prinzipiellen ist das kein Problem.
Fangen wir mal so an.
Die jetzige Batch sieht so aus:
Dann müßte man erst mal die Möglichen empfänger aus dem Verzeichnis auslesen, also anhand der Ordnernamen.
Das ginge so:
Ist jetzt halt alles ungetestet geschrieben, also bitte etst testen obs so geht wie du willst!
Wenn du blat noch dazunehmen willst kanst du das einfach vor der letzten Klammer einfügen.
Die Dateien.txt mit der Liste der Blätter für jeden Benutzer müßte dann so aussehen:
Willst du die lieber aus einer Datei lesen udn erstellen lassen dan ersetzte die Zeile :
miniversum
Fangen wir mal so an.
Die jetzige Batch sieht so aus:
@echo off
C:\Scan\GSWIN\gswin32 -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=C:\Scan\SEND\Empfänger1\Example.pdf -dBATCH C:/Scan/SCAN/1.pdf
C:\Scan\GSWIN\gswin32 -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=C:\Scan\SEND\Empfänger1\Example.pdf -dBATCH C:/Scan/SCAN/1.pdf
Dann müßte man erst mal die Möglichen empfänger aus dem Verzeichnis auslesen, also anhand der Ordnernamen.
Das ginge so:
FOR /F "delims=" %%E in ('dir /b /a-d C:\SCAN\SEND') do echo %%E
damit kannst du dann die Dateien auslesen die beinhalten welche Blätter die einzelnen Empfänger bekommen sollen:FOR /F "delims=" %%F in ('type C:\Scan\SEND\%%E\Variable.txt') do echo %%F
und diese dann zu einer Variabeln zusammensetzen die eben diese Reihenfolge enthält:C:/Scan/SCAN/1.pdf C:/Scan/SCAN/5.pdf C:/Scan/SCAN/6.pdf C:/Scan/SCAN/10.pdf C:/Scan/SCAN/22.pdf
Das geht dan mit:set "Dateien=%Dateien% C:/Scan/SCAN/%%F
Alles in einander verschachtelt sieht das ganze dan so aus:@echo off
FOR /F "delims=" %%E in ('dir /b /a-d C:\SCAN\SEND') do (
echo Empfänger %%E wird vorbereitet
FOR /F "delims=" %%F in ('type C:\Scan\SEND\%%E\Dateien.txt') do set "Dateien=Dateien C:/Scan/SCAN/%%F
C:\Scan\GSWIN\gswin32 -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=C:\Scan\SEND\%%E\Example.pdf -dBATCH %Dateien%
)
FOR /F "delims=" %%E in ('dir /b /a-d C:\SCAN\SEND') do (
echo Empfänger %%E wird vorbereitet
FOR /F "delims=" %%F in ('type C:\Scan\SEND\%%E\Dateien.txt') do set "Dateien=Dateien C:/Scan/SCAN/%%F
C:\Scan\GSWIN\gswin32 -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=C:\Scan\SEND\%%E\Example.pdf -dBATCH %Dateien%
)
Ist jetzt halt alles ungetestet geschrieben, also bitte etst testen obs so geht wie du willst!
Wenn du blat noch dazunehmen willst kanst du das einfach vor der letzten Klammer einfügen.
Die Dateien.txt mit der Liste der Blätter für jeden Benutzer müßte dann so aussehen:
1.pdf
5.pdf
6.pdf
10.pdf
22.pdf
Und die Ordner mit den entsprechenden Empfängernamen müsten auch angelegt werden.5.pdf
6.pdf
10.pdf
22.pdf
Willst du die lieber aus einer Datei lesen udn erstellen lassen dan ersetzte die Zeile :
FOR /F "delims=" %%E in ('dir /b /a-d C:\SCAN\SEND') do (
durch diese:FOR /F "delims=" %%E in ('type C:\SCAN\SEND\Empf.txt') do (
md C:\SCAN\SEND\%%E
md C:\SCAN\SEND\%%E
miniversum