Top-Themen

Aktuelle Themen (A bis Z)

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 Word- und PDF-Dokumente und Excel-Tabellen via Batch drucken?

Mitglied: TexMex

TexMex (Level 1) - Jetzt verbinden

05.07.2011 um 17:09 Uhr, 9982 Aufrufe, 8 Kommentare

Hallo!

Ich möchte mithilfe einer Batch-Datei wie im Titel beschrieben verschiedene Datei-Formate ausdrucken lassen. Doch es will nicht so ganz funktionieren...

Ich habe mir mithilfe einiger hier geschilderter Tipps für den Druck von Word-Dokumenten eine Batch-Datei geschrieben, die auf die Lösungsansätze aus diesem Thread basieren.

Doch leider wirft das Programm bei mir nur eine Fehlermeldung aus (Kompilierungsfehler). Zudem kann ich auch nicht auf den LPT1-Trick zurückgreifen, da der Drucker über den USB-Port angeschlossen worden ist und ich auch keine Veränderungen am bestehenden System vornehmen kann, weil es nicht mein eigener Rechner ist (damit fällt die Installation von Zusatzsoftware leider auch weg.)

Also, was ich ganz allgemein mit der Batch-Datei erreichen möchte:

In einem Ordner (hier: resources/00001234/ ), den der User zuvor durch eine simple Abfrage selbst raussucht, sind verschiedene Dateien, die die Stapelverarbeitung alle ausdrucken soll.

Mit dem print-Befehl kommt dabei nur die Anzeige, dass gedruckt wird. Auf diese ganze Geschichte mit LPT1 kann ich wie oben geschildert auch nicht zurückgreifen.

01.
Notepad /p test.txt
Dieser Code funktioniert leider auch nur bei Text-Dokumenten, bei allen anderen Formaten bekomme ich logischerweise nur lauter Müll.

Gibt es da eventuell eine - für die drei genannten Formate - universelle Lösung, die im besten Fall auch nicht auf externe Dateien zurückgreift.

Und noch eine kurze Frage, die nicht direkt mit dem Thema selbst zu tun hat, aber ich stelle sie dennoch hier, da ich nicht extra einen Thread dafür eröffnen möchte:
Gibt es eine include-Funktion in Batch-Dateien? Ich habe schon danach gesucht, aber leider nichts vernünftiges finden können.

Den Befehl kenne ich nämlich aus PHP und damit könnte ich nämlich problemlos das Batch selbst mit einer anderen integrierten Batchfile bearbeiten, da ich dann die einzelnen Bestandteile der ersten Batch in Text-Dateien auslasten könnte.
Mitglied: bastla
05.07.2011 um 20:56 Uhr
Hallo TexMex und willkommen im Forum!

Im angesprochenen Thread hatte ich eine VBS-Variante "PrintAllDocs.vbs" verbrochen, die angepasst auf Deine Anforderung etwa so aussehen würde:
01.
'PrintCertainFiles.vbs 
02.
sSourceFolder = "D:\resources\00001234" ' Standard-Ordner; kann durch Übergabe eines Ordners als Parameter ersetzt werden 
03.
sDateitypen = "#doc#docx#pdf#xls#xlsx#" ' zu verarbeitende Dateitypen - bitte nur in Kleinbuchstaben 
04.
iWartezeit = 5 'Pause in Sekunden bis zur Verarbeitung der nächsten Datei 
05.
 
06.
If WScript.Arguments.Count > 0 Then 
07.
    sSourceFolder = WScript.Arguments(0) 
08.
End If 
09.
Set fso = CreateObject("Scripting.FileSystemObject") 
10.
If sSourceFolder = "" Or Not fso.FolderExists(sSourceFolder) Then 
11.
    WScript.Echo "Ordner """ & sSourceFolder & """ nicht verfügbar!" 
12.
    WScript.Quit(2) 
13.
Else 
14.
    Set oShellApp = WScript.CreateObject("Shell.Application") 
15.
    For Each oFile In fso.GetFolder(sSourceFolder).Files 
16.
        If InStr(sDateitypen, "#" & LCase(fso.GetExtensionName(oFile.Name)) & "#") > 0 Then 
17.
            oShellApp.ShellExecute oFile.Path, "", "", "print", 0 
18.
            bPrinted = True 
19.
            WScript.Sleep(1000 * iWartezeit) 
20.
        End If 
21.
    Next 
22.
    Set oShellApp = Nothing 
23.
    If Not bPrinted Then 
24.
        WScript.Echo "Kein Dokument zum Drucken gefunden!" 
25.
        WScript.Quit(1) 
26.
    End If 
27.
End If
Im Prinzip wird hier für jede Datei, sofern sie den vorgegebenen Typen (siehe Zeile 3) entspricht, die Auswahl von "Drucken" im Kontextmenü des Explorers "simuliert" ...
Zu Deiner "Batch"-Frage: Ein Batch kann einen anderen Batch per "call" aufrufen - ein unmittelbares "Include" gibt es aber leider nicht.

Grüße
bastla
Bitte warten ..
Mitglied: mathe172
05.07.2011 um 23:31 Uhr
Hallo,

zu deiner zweiten Frage:

wenn du eine zweite Batch hast, in der genau eine Funktion enthalten ist, kannst du diese per "call" wie ein Unterprogramm ausführen.

Wenn du wirklich ein Include willst, versuch folgendes:
01.
if exist "Temp.bat" ( 
02.
copy "Temp.bat"+"%~1" "Temp.bat" 
03.
) else ( 
04.
>"Temp.bat" more +%~2 "%~1" 
05.
)
Ist noch nicht perfekt-aber wenn du das in eine Include.bat speicherst, und dann die Originaldatei so beginnst könnte es ein Schritt in die gewünschte Richtung sein.
01.
rem Die 6 steht für die Anzahl Zeilen in dieser Datei, die ausgelassen werden sollen 
02.
2>nul del "Temp.bat" 
03.
@call include "%~0" 6 
04.
@call include "Bsp.txt" 
05.
start "Temp.bat" 
06.
goto :eof 
07.
call :Ordner
Zuerst muss die Datei selbst eingebunden werden, jedoch ohne den ersten Zeilen, da stehen ja die Includebefehle.
Danach wird die Bsp.txt eingebunden, die könnte so ausschauen:
:Ordner 
cd 
pause
Nun wird die Temp.bat gestartet und die Batch verlassen. Alles was jetzt kommt wird dann in der Temp.bat ausgeführt. Hier also:
call :Ordner 
cd 
pause
MfG,
Mathe172
Bitte warten ..
Mitglied: Jochem
06.07.2011 um 07:39 Uhr
Moin,

Zudem kann ich auch nicht auf den LPT1-Trick zurückgreifen, da der Drucker über den USB-Port angeschlossen worden ist und ich auch keine Veränderungen am bestehenden System > vornehmen kann....

Wer hindert Dich daran, für den über USB angeschlossenen Drucker eine Freigabe zu erstellen und den so freigegebenen Drucker per "net use"-Befehl an LPT1 zu hängen?

Gruß J chem
Bitte warten ..
Mitglied: TexMex
06.07.2011 um 17:02 Uhr
Das Script hat funktioniert!
Aber ich habe dazu noch eine Frage:
Kann ich als Verzeichnis in dem VBScript auch eine Variabel aus der Batch-Datei nehmen oder ist das nicht möglich?

Den Trick mit dem Include werde ich bei Gelegenheit ausprobieren, klingt auf jeden Fall sehr gut.
Bitte warten ..
Mitglied: bastla
06.07.2011 um 17:42 Uhr
Hallo TexMex!

Da, wie erwähnt, das Script auch einen Parameter übernimmt, kannst Du es einfach per
C:\Scripts\PrintCertainFiles.vbs "D:\Dein anderes Verzeichnis"
aufrufen - auf Wunsch auch per
cscript //nologo C:\Scripts\PrintCertainFiles.vbs "D:\Dein anderes Verzeichnis"
in der Konsolenversion ...

Außerdem werden Errorlevel zurückgegeben - siehe dazu die jeweiligen "WScrpit.Quit()"-Zeilen.

Grüße
bastla
Bitte warten ..
Mitglied: TexMex
07.07.2011 um 16:44 Uhr
Zitat von bastla:
auf Wunsch auch per
cscript //nologo C:\Scripts\PrintCertainFiles.vbs "D:\Dein anderes Verzeichnis" 
> 
in der Konsolenversion ...

Außerdem werden Errorlevel zurückgegeben - siehe dazu die jeweiligen "WScrpit.Quit()"-Zeilen.

Grüße
bastla

Hallo bastla!

Erstmal nochmals ein großes Danke an dich für dieses tolle Skript. Es funktioniert jetzt tadellos, leider habe ich noch ein kleines Problem in der Batch-Datei selbst, denn nachdem das VBScript gestartet wird, beendet sich meine Batch - genau das sollte es aber eigentlich nicht machen. Ich hab's dann via "Call"-Befehl ausprobiert, weil dadurch die Stapelverarbeitung eigentlich weiterlaufen sollte, aber auch hier wird das Programm nur beendet.

Ich habe dann ein paar Seiten durchforstet, dort stand dann etwas von WBScript und dass ich es über
wscript //b C:\Scripts\PrintCertainFiles.vbs "D:\Mein Verzeichnis"
aufrufen solle, aber das hat auch wieder nichts geändert.

Zitat von Jochem:
Moin,

Wer hindert Dich daran, für den über USB angeschlossenen Drucker eine Freigabe zu erstellen und den so freigegebenen
Drucker per "net use"-Befehl an LPT1 zu hängen?

Gruß J chem

Hey Jochem!

Wie oben schon geschildert, handelt es sich bei dem Rechner nicht um meinen eigenen PC, sondern um einen Firmen-Rechner, bei dem ich nicht die vollen Zugriffsrechte habe. Mit diesem kleinen Script möchte ich einfach nur mir und meinen Kollegen einen ganzen Haufen Arbeit ersparen.
Bitte warten ..
Mitglied: bastla
07.07.2011 um 16:57 Uhr
Hallo TexMex!

Eigentlich sollte der Batch auf das Ende des Scripts warten ...

... anyhow - versuch es so:
start "Drucken ..." /wait cscript //nologo C:\Scripts\PrintCertainFiles.vbs "D:\Dein anderes Verzeichnis"
Grüße
bastla
Bitte warten ..
Mitglied: TexMex
09.07.2011 um 13:04 Uhr
Damit hat es leider auch nicht funktioniert, ich habe einfach eine neue Batch-Datei mit der entsprechenden Zeile für das CScript erstellt und diese dann via "Call-Befehl" ausgeführt. Das ist wohl nicht optimal, aber es funktioniert dann zumindest ohne Probleme.
Bitte warten ..
Ähnliche Inhalte
Microsoft Office

Word Dokument (vorausgefüllte Formulare) aus Excel Tabelle generieren

Frage von Server4AlleMicrosoft Office1 Kommentar

Hallo, gibt es eine Möglichkeit aus einer Excel Tabelle (Datenquelle) heraus mehrere Word Dokument (vorausgefüllte Formulare) zu generieren? Oder ...

Entwicklung

Word Dokumente in PDF umwandel

gelöst Frage von Daniel3Entwicklung7 Kommentare

Hallo zusammen, Gibt es ein Programm, dass es schafft Word Dokumente von einen Ordner automatisch in einen anderen Ordner ...

VB for Applications

Excel Dokument als PDF speichern

gelöst Frage von TIM589VB for Applications2 Kommentare

Ich habe mir ein kleines Rechnungsprogramm gebastelt und würde das ganze am Ende als PDF automatisch abspeichern lassen. Leider ...

Batch & Shell

Mehrere Word Dokumente per Batch Drucken lassen

gelöst Frage von SebastianGBatch & Shell1 Kommentar

Hallo zusammen, ich weis hierzu gibt es schon viele Beiträge aber bis jetzt hat mir noch kein Beitrag wirklich ...

Neue Wissensbeiträge
Sicherheit

MikroTik-Router patchen, Schwachstelle wird ausgenutzt

Information von kgborn vor 7 StundenSicherheit

Am 23. April 2018 wurde von Mikrotik ein Security Advisory herausgegeben, welches auf eine Schwachstelle im RouterOS hinwies. Mikrotik ...

Windows 10

Microcode-Updates KB4090007, KB4091663, KB4091664, KB4091666 für Windows 10

Information von kgborn vor 13 StundenWindows 101 Kommentar

Kurze Information für Administratoren von Windows 10-Systemen, die mit neueren Intel CPUs laufen. Microsoft hat zum 23. April 2018 ...

iOS
Updates für Iphone und Co
Information von sabines vor 17 StundeniOS

Gestern abend ist iOS 11.3.1 erschienen, ein kleineres Update, dass einige Lücken schließt und "Lahmlegen" nach einem Display Tausch ...

Windows 7

Windows 7 - Server 2008 R2: Exploit für Total Meltdown verfügbar

Information von kgborn vor 2 TagenWindows 7

Kleine Information für Administratoren, die für die Updates von Windows 7 SP1 und Windows Server 2008 R2 SP1 verantwortlich ...

Heiß diskutierte Inhalte
Batch & Shell
Powershell: Im AD nach Rechnern mit bestimmten IP-Adressen suchen
gelöst Frage von Raven42Batch & Shell36 Kommentare

Hallo zusammen, ich suche nach einer Möglichkeit nach Computern im AD zu suchen , deren IP-Adresse mit 10.11.12. beginnt. ...

C und C++
Frage1 C Programmierung-Makefile Frage2 PHP-Programmierung HTTP-Fehler 404
Frage von KatalinaC und C++34 Kommentare

Hallo, ich habe 2 Fragen, die nichts miteinander zu tun haben aber mit denen ich mich gerade beschäftige: 1. ...

LAN, WAN, Wireless
Watchguard T15 VPN Einrichtung
gelöst Frage von thomasjayLAN, WAN, Wireless25 Kommentare

Hallo zusammen, wir möchten gerne über unsere Watchguard T15 einen VPN-Tunnel (Mobile VPN with IPSec) einrichten! Als Client nutzen ...

Windows Server
Alten DC entfernen
Frage von smartinoWindows Server24 Kommentare

Hallo zusammen, ich habe hier eine Umgebung übernommen und erstmal einen DCDIAG gemacht. Dabei fällt auf, daß eine ganze ...