Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batch liest Informationen aus TXT und verarbeitet sie weiter

Frage Entwicklung Batch & Shell

Mitglied: Zilla99

Zilla99 (Level 1) - Jetzt verbinden

18.03.2008, aktualisiert 19.03.2008, 3770 Aufrufe, 2 Kommentare

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 !
Mitglied: miniversum
18.03.2008 um 18:19 Uhr
Also vom Prinzipiellen ist das kein Problem.
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

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%
)

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.
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

miniversum
Bitte warten ..
Mitglied: Zilla99
19.03.2008 um 10:12 Uhr
Hi oh ich teste das nacher ^^

ich habe im moment das so geregelt

01.
@echo off 
02.
 
03.
for /f "delims=" %%i in ('findstr /b "C:/" "PDF.txt"') do set "PDF=%%i" 
04.
 
05.
C:\Scan\GSWIN\gswin32 -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=C:\Scan\SEND\Complete\Extract.pdf -dBATCH %PDF%
in der PDF.txt steht halt dann

C:/Scan/SCAN/1.pdf C:/Scan/SCAN/2.pdf etc drin,
Bitte warten ..
Neuester Wissensbeitrag
Exchange Server

WSUS bietet CU22 für Exchange 2007 SP3 nicht an. EOL Exchange 2007

Tipp von DerWoWusste zum Thema Exchange Server ...

Ähnliche Inhalte
Windows 10
Batch: Copy file.txt Lokaler Drucker (1)

Frage von fluluk zum Thema Windows 10 ...

Batch & Shell
Altebekanntes Batch umlaute Problem (txt editor) (2)

Frage von Ritrivia zum Thema Batch & Shell ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Batch xls nach aktuellem Datum auslesen und email senden (14)

Frage von michi-ffm zum Thema Batch & Shell ...

Backup
Datensicherung ARCHIV (12)

Frage von fautec56 zum Thema Backup ...

LAN, WAN, Wireless
Per Script auf UniFi-controller zugreifen und WPA2-Key ändern (11)

Frage von Winfried-HH zum Thema LAN, WAN, Wireless ...