78505
Goto Top

Dateien mittels Batch zum Drucker senden und durch Erkennung des Dateinamen in das richtige Verzeichnis verschieben

Hallo in die Runde,

da ich in der Script bzw. Batcherstellung Neuling bin, möchte ich mich an die erfahrenen Anwender wenden.

Zur Zeit habe ich diese Batch am laufen siehe Anhang!!!

Beim anklicken der jeweiligen PCL-Datei wird ein Batch ausgeführt (siehe Anhang).

Der User wählt zum Beispiel den Drucker2 aus, dieser wird angepingt um festzustellen ob er aktiv ist, nach erfolgreicher Quittung wird die angeklickte Datei per lpr Befehl zum Drucker 2 gesendet und ausgedruckt, desweiteren wird die Datei verschoben.
Damit soll unterbunden werden das die jeweilige Datei nochmal ausgedruckt wird.

Zur Zeit verschiebt er die Datei nur durch das Auswahlverfahren, durch das ansprechen bzw. anwählen des jeweiligen Drucker.

Jetzt möchte ich dies gerne anders realisieren egal zu welchem Drucker man die Datei sendet verschiebe es zu dem richtigen Verzeichnis.
Dies soll mit den Dateinamen realisiert werden diese lauten:

TestD*.pcl -> verschiebe diese Datei in C:\Backup\Drucker1
TestQ*.pcl -> verschiebe diese Datei in C:\Backup\Drucker2

@echo off
cls
:start
ECHO.
ECHO 1. Drucker1
ECHO 2. Drucker2
ECHO 3. Drucker3
ECHO 4. Drucker4
ECHO 5. Drucker5
ECHO 0. Programm beenden
set choice=
set /p choice=Bitte waehlen Sie einen Drucker aus!
if not '%choice%'=='' set choice=%choice:~0,2%
if '%choice%'=='1' goto Drucker1
if '%choice%'=='2' goto Drucker2
if '%choice%'=='3' goto Drucker3
if '%choice%'=='4' goto Drucker4
if '%choice%'=='5' goto Drucker5
if '%choice%'=='0' goto end
ECHO "%choice%" Sie haben eine falsche Auswahlmöglichkeit gewählt!
ECHO.
goto start

:Drucker1
set host=192.168.2.1
pause
:print1
lpr -S 192.168.2.1 -P TT -d %1 && echo %1 %date% %time% >> C:\Ordner\Drucker1.html
move %1 C:\Backup\Drucker1
goto end

:Drucker2
set host=192.168.2.2
pause
:print2
lpr -S 192.168.2.2 -P TT -d %1 && echo %1 %date% %time% >> C:\Ordner\Drucker2.html
move %1 C:\Backup\Drucker2


etc..................................


goto end

Würd mich über viele Ideen und Lösungen freuen.

Wünsche allen ein schönes neues Jahr!


DANKESCHÖN!

Content-Key: 132428

Url: https://administrator.de/contentid/132428

Printed on: April 24, 2024 at 18:04 o'clock

Member: colinardo
colinardo Dec 29, 2009 at 10:57:09 (UTC)
Goto Top
Du kannst den Dateinamen folgendermaßen überprüfen:

In diesem Beispiel nehme ich an das das die ersten 5 Zeichen deiner *.pcl Dateien relevant sind.
ergänze deine Batch an der entsprechenden Stelle um folgendes:

set filename=%~n1
if "%filename:~0,5%" == "TestD" (move %1 "C:\Backup\Drucker1")  
if "%filename:~0,5%" == "TestQ" (move %1 "C:\Backup\Drucker2")  

Die erste Zeile extrahiert nur den Dateinamen aus dem Pfad zur *.pcl
Das %filename:~0,5% extrahiert nur die ersten 5 Zeichen der Variablen "filename", d.h. es fängt bei 0 an zu zählen.

Mit dieser Methode lässt sich auch ein String von hinten um eine bestimmte Anzahl abschneiden z.b. %file:~0,-3% löscht die letzten 3 Zeichen von einer Variablen.

Hoffe das hilft dir bei deinem Vorhaben !

guten Rutsch
face-smileuwe