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

Script das PDF Dateien automatisch drucken und verschieben

Frage Microsoft Windows Server

Mitglied: Webdoktor

Webdoktor (Level 1) - Jetzt verbinden

07.12.2010, aktualisiert 18.10.2012, 23800 Aufrufe, 15 Kommentare

Liebe Forum-Besucher

Ich habe eine kleine Frage. Wir haben auf einem Windows-Server ein Laufwerk P: gemappt in welchem
von einem System automatisch PDF Dateien abgelegt werden.

Nun brauche ich ein Script, welches z.B. alle 10 Sekunden in diesen Ordner schaut ob ein neues PDF
vorhanden ist. Falls es neue PDF's gibt soll das Script diese ausdrucken und danach in einen Ordner
verschieben.

Hat jemand eine Idee wie ich das am einfachsten anstellen kann? Ich denke, dass könnte man evt.
mit ein paar Zeilen Script lösen?

Ich wäre über jeden Tipp und Hilfe sehr dankbar!
Freue mich auf eure Antworten.

Grüsse Marco
Mitglied: -bugg-
07.12.2010 um 10:34 Uhr
Moin,

habe hier ein kleines Script mit dem du die PDF Dateien ausdrucken kannst: http://blog.sven-borkenhagen.info/?p=375
Verschieben würde ich die Dateien mit "move" einfach mal in die cmd "move /?" eingeben, da wirst du sicher was mit anfangen können.

Gruß
-bugg-
Bitte warten ..
Mitglied: bastla
07.12.2010, aktualisiert 18.10.2012
Hallo Webdoktor!

Etwas in der Art hatten wir mal hier ...

Grüße
bastla
Bitte warten ..
Mitglied: Webdoktor
07.12.2010 um 10:52 Uhr
Hallo Bastla

Danke für Deine Antwort. Ich möchte es jedoch ohne STOP-Datei sondern wirklich ganz einfach.
Wenn eine Datei im Ordner liegt diese Ausdrucken und verschieben. Dass Script muss nicht
stoppen sondern immer laufen damit es immer überprüft, ob es eine neue Datei resp. neue
Dateien im Ordner hat.

Freue mich auf weitere Hilfe.

Grüsse Marco
Bitte warten ..
Mitglied: bastla
07.12.2010 um 10:58 Uhr
Hallo Webdoktor!

Die "STOP"-Datei war ja nur als Option gedacht (wenn eine Datei dieses Namens im überwachten Ordner erstellt wird, beendet sich das Überwachungsscript) ...

Grüße
bastla
Bitte warten ..
Mitglied: Webdoktor
07.12.2010 um 12:32 Uhr
Hallo Bugg

Vielen Dank für Deine promote Antwort. Ich habe Dein Script nun mal so angepasst:

01.
  
02.
@echo off 
03.
 
04.
:pdfprint 
05.
 
06.
for %%p in ("C:\temppdf\*.pdf") do ( 
07.
 
08.
"C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe" /p /h %%p 
09.
 
10.
ping 127.0.0.1 -n 5 
11.
move "%%p" "C:\temppdf_move\" 
12.
 
13.
 
14.
15.
 
16.
ping 127.0.0.1 -n 5 
17.
goto pdfprint


Frage mich nur wie professionell das ist und ob das nicht eine riesen Last für den PC oder Server ist wenn das so den ganzen Tag läuft?
Dann habe ich noch eine Frage, es wäre nun ideal, wenn ich diese .bat Datei als Dienst laufen lassen könnte. Den Dienst habe ich mittels
sc eingerichtet also:

01.
sc create „Testdienst“ start= auto binpath= „C:\Programme\Beispieldatei.exe“
Wenn ich den Dienst nun starte kommt folgende Meldung:
"fehler 1053 der dienst antwortete nicht rechtzeitig auf die start- oder steuerungsanforderung"

Weiss jemand wieso?

Freue mich auf eure Antworten.
Marco
Bitte warten ..
Mitglied: -bugg-
07.12.2010 um 13:15 Uhr
Hi,

ich habe auch mal vor dem Problem gestanden, dass ich eine .bat Datei als Dienst laufen lassen wollte. Ich habe einfach die .bat Datei in eine .exe Umgewandelt (findet man zahlreiche Tools bei google). Und dann mittels instsrv.exe aus den Windows Server 2003 Resource Kit Tools den Dienst erstellt. http://www.serverhowto.de/Applikationen-als-Dienste-einrichten.228.0.ht ...

In wie weit das Professionell ist oder nicht war mir eigentlich egal weils funktioniert hat.

PS:Wenn du einen Dienst erstellst, dann läuft dieser mit dem Lokalen Systemkonto, was dazu führt das du damit keinen Zugriff auf evtl. Netzlaufwerke hast. War bei mir anfangs ein Problem auf das ich nicht gleich gekommen bin. Es gibt aber die möglichkeit ein anderes Konto einzutragen.

Grüße
-bugg-
Bitte warten ..
Mitglied: Webdoktor
07.12.2010 um 13:32 Uhr
Hallo Bugg

Danke für Deine Antwort. Ich habe folgendes Tool heruntergeladen und aus der .bat eine .exe gemacht:
http://www.abyssmedia.com/quickbfc/

Danach als Dienst eingerichtet und leider kommt die gleiche Fehlermeldung

Hast Du noch eine Idee?

LG Marco
Bitte warten ..
Mitglied: -bugg-
07.12.2010 um 14:02 Uhr
Hi Marco,

probier mal dieser Programm zur Diensterstellung aus: http://www.pirmasoft.de/runassvc.php
Wichtig aber vorher den mit instsrv.exe erstellten Dienst entfernen mit "instsrv.exe "Dienstname" remove"
Schreib mal wenns geklappt hat.

Gruß
-bugg-
Bitte warten ..
Mitglied: Webdoktor
07.12.2010 um 15:52 Uhr
Hallo Bastla

Ich habe nun Dein Code angeschaut und momentan sieht er wie folgt aus und leider
klappt es noch nicht:

01.
strFolder = "C:\temppdf" 'ohne abschließenden "\", auch bei Root-Folder 
02.
 
03.
strUserFolder = """" & Replace(strFolder, "\", "\\\\") & """" 
04.
strComputer = "." 
05.
Set fso = CreateObject("Scripting.FileSystemObject") 
06.
Set objShell = CreateObject("Wscript.Shell") 
07.
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 
08.
Set colMonitoredEvents = objWMIService.ExecNotificationQuery _ 
09.
    ("SELECT * FROM __InstanceCreationEvent WITHIN 10 WHERE " _ 
10.
        & "Targetinstance ISA 'CIM_DirectoryContainsFile' and " _ 
11.
            & "TargetInstance.GroupComponent= " _ 
12.
                & "'Win32_Directory.Name=" & strUserFolder & "'") 
13.
 
14.
Do 
15.
    Set objLatestEvent = colMonitoredEvents.NextEvent 
16.
    strNewFile = objLatestEvent.TargetInstance.PartComponent 
17.
    arrNewFile = Split(strNewFile, "=") 
18.
    strFileName = arrNewFile(1) 
19.
    strFileName = Replace(strFileName, "\\", "\") 
20.
    strFileName = Replace(strFileName, Chr(34), "") 
21.
 
22.
    If strFileName = strFolder & "\STOP" Then 
23.
        MsgBox "Überwachung von " & strFolder & " wird beendet." 
24.
        WScript.Quit 
25.
    End If 
26.
     
27.
    Select Case LCase(fso.GetExtensionName(strFileName)) 
28.
     
29.
    Case "doc" 'Typ in Kleinbuchstaben angeben 
30.
        Set objWord = WScript.CreateObject("Word.Application") 
31.
        With objWord 
32.
            .Documents.Open strFileName 
33.
            .ActiveDocument.PrintOut 
34.
            WScript.Sleep(0815) 
35.
            .ActiveDocument.Close 
36.
            .Quit 
37.
        End With 
38.
        Set objWord = Nothing 
39.
         
40.
    Case "pdf" 'Typ in Kleinbuchstaben angeben 
41.
        objShell.Run """C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe"" /p /h """ & strFileName & """" 
42.
 
43.
    Case Else 
44.
        ' keine Aktion erforderlich 
45.
 
46.
    End Select 
47.
     
48.
Loop 
49.
 
wenn ich die test.vbs doppelklicke passiert nichts. was muss ich da machen?

Danke für Dein Hilfe.
Marco
Bitte warten ..
Mitglied: Biber
07.12.2010 um 17:53 Uhr
Moin webdoktor,

Zitat von Webdoktor:
wenn ich die test.vbs doppelklicke passiert nichts. was muss ich da machen?
Hmmmm... naheliegend wäre die Idee, alle paar Zentimeter mal ein WScript.echo "hallo, bis Zeile 15 bin ich gekommen" einzufügen.

Denselben Rat werden dir bestimmt auch andere Forumsmitglieder geben wollen, aber eventuell etwas schroffer formuliert.

Um Unheil abzuwenden deshalb dieser Tipp.

Grüße
Biber

P.S. Natürlich nicht bei jedem WScript.echo ein "Zeile 15" reinschreiben. Copy & Paste ist in diesem Fall nicht zeitsparend.
Bitte warten ..
Mitglied: bastla
07.12.2010 um 18:16 Uhr
Hallo Webdoktor!
wenn ich die test.vbs doppelklicke passiert nichts.
Das mag ich eigentlich nicht glauben - und ein Blick in den Taskmanager auf die laufenden Prozesse oder ein "tasklist" an der Kommandozeile sollten Dir zeigen, dass ein "wscript"-Prozess läuft ...
was muss ich da machen?
... allerdings ist diesem Prozess ziemlich langweilig, wenn im Ordner "C:\temppdf" keine ".pdf"-Dateien ankommen - daher vielleicht einmal die eine oder andere (auch per Drag & Drop möglich) hineinkopieren (und etwas Geduld aufbringen, da nur alle 10 Sekunden - siehe Zeile 9 - auf "Neuankömmlinge" geprüft wird ).

Ansonsten könntest Du natürlich Bibers Vorschlag aufgreifen und zur Vereinfachung die Zeile 41 auf
WScript.Echo """C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe"" /p /h """ & strFileName & """"
ändern - es sollte dann für jede neue ".pdf"-Datei der Programmaufruf (nur) angezeigt werden.

Grüße
bastla
Bitte warten ..
Mitglied: Webdoktor
08.12.2010 um 08:52 Uhr
Lieber Bastla & Biber

Vielen Dank für Deine Antwort. Ich sehe nun, dass der Prozess läuft also das wscript finde ich im Taskmanager.
Leider funktioniert das Script aber immer noch nicht obwohl ich eine PDF Datei in den Ordner C:\temppdf kopiere.

Ich habe z.B. in Zeile 15 ein

01.
msgbox ("hier")
hinzugefügt um es zu kontrollieren ob es überhaupt in diese Schlaufe geht. Leider wir diese MsgBox gar nicht
angezeigt. Hast Du eine Idee wieso?

Freue mich auf Deine / Eure Antworten.
Marco
Bitte warten ..
Mitglied: Webdoktor
09.12.2010 um 13:54 Uhr
Hallo zusammen

Ich schaffe es leider einfach nicht. Kann mir nicht jemand helfen. Wäre sehr dankbar!

Liebe Grüsse
Marco
Bitte warten ..
Mitglied: -bugg-
09.12.2010 um 15:43 Uhr
Die Version die ich dir vorgeschlagen hab funktioniert doch. Was spricht dagegen?
Bitte warten ..
Mitglied: bastla
09.12.2010 um 16:00 Uhr
Hallo Webdoktor!
Kann mir nicht jemand helfen.
Da das Script so wie von Dir gepostet bei mir funktioniert, fehlt mir leider ein Ansatzpunkt ...

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Dateien automatisch anhand von 2 komplizierten Dateinamen-Strings verschieben (3)

Frage von cleverm zum Thema Batch & Shell ...

Batch & Shell
14 Tage alte Dateien automatisch löschen - Shell (1)

Frage von traller zum Thema Batch & Shell ...

Sonstige Systeme
PDF-OCR Erkennung und verschieben in Ordner wenn Schlagwort enthalten (7)

Frage von SysAdm81 zum Thema Sonstige Systeme ...

Batch & Shell
gelöst Mehrere PDF-Dateien per Batch zusammenfügen (1)

Frage von Grimmli zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (18)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...