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, 3776 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Bestimmte Daten aus CSV per Windows BATCH Datei in .txt Format schreiben lassen. (9)

Frage von freshman2017 zum Thema Batch & Shell ...

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

Frage von fluluk zum Thema Windows 10 ...

Batch & Shell
Maximale Größe zu verarbeitender txt-Dateien mit Batch (5)

Frage von Muck1303 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte