[Batch] Ordner durchsuchen und Dateien ausdrucken
lima-city → Forum → Programmiersprachen → Sonstige Programmiersprachen
befehl
byte
code
datei
dokument
druck
fertig pause
leere datei
not
ordner
pause
quellcode
report
schauen
set
tab
testen
url
wende
zeile
-
Hi, ich habe einen Ordner, in den per Dropbox PDF-Dokumente kommen. Auf einem der Rechner soll nun ein Batch-Script laufen, das schaut, ob PDF-Dokumente in dem Ordner sind und falls welche da sind, diese ausdruckt und anschließend löscht. Vor dem Drucken und Löschen sollte es aber schauen, ob die Datei mehr als 0 Byte hat, da Dropbox immer zuerst eine leere Datei anlegt, dann die Datei herunter lädt (in eine Cache-Datei, die nicht in diesem Ordner ist) und dann die leere Datei durch die volle ersetzt.
Dummerweise habe ich keine Ahnung, wie das geht, weswegen ich mich an euch wende. Der Print-Befehl schafft ja laut help-Befehl auch nur Textdateien ... -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hier eine Batch für das Scannen von Pdfs und wegen dem 0 Byte.
Musst nurnoch ein Programm finden was per Commandline pdfs drucken kann und dann die
echo Hier der Druckbefehl
Zeile mit dem Befehl ersetzen.
Dann kann auch das pause in der Zeile darunter weg, wenn gewünscht.
Pdfs.cmd
@echo off cd /d "%~dp0" for %%a in ("*.pdf") do set datei=%%a&set bytes=%%~za&call :loop echo Fertig&pause&exit :loop if "%bytes%" LEQ "0" goto :eof echo Datei '%datei%' (%bytes% Bytes) wird bearbeitet echo Hier der Druckbefehl pause goto :eof
Beitrag zuletzt geändert: 9.8.2011 21:49:57 von tid-gaming -
Hallo das-koenigreich,
hier der Quellcode wie ich dies mit AutoIt lösen würde:#Include <File.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> Local $sIni = @ScriptDir & "\dropbox.ini" Local $sPath = IniRead($sIni, "Config", "Path", "c:\dropbox") Local $sNewDir, $aFiles $idfrmMain = GUICreate("DropBox PDF print and delete (Author: autoBert 2011)", 500, 210) GUICtrlCreateLabel("PDF's sind im Ordner:", 5, 10, 170, 20, $SS_CENTER) GUICtrlSetFont(-1, 12) Local $idbtnSelect = GUICtrlCreateButton("&ändern", 180, 10, 80, 20) Local $idedtSave = GUICtrlCreateEdit($sPath, 5, 35, 490, 70, BitOR($ES_MULTILINE, $ES_READONLY)) GUICtrlSetFont(-1, 12, 1800) GUICtrlSetState(-1, $GUI_DISABLE) Local $idbtnPrint = GUICtrlCreateButton("&Drucken", 180, 120, 80, 20) Local $idProgress = GUICtrlCreateProgress(5,150,490,20) Local $idlblProgress = GUICtrlCreateLabel("",5,175,490,20) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $idbtnSelect If $sPath = "" Then $sPath = "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}" $sNewDir = FileSelectFolder("Ordner zum Speichern auswählen", "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}", 1, $sPath, $idfrmMain) If $sNewDir <> "" Then GUICtrlSetData($idedtSave, $sNewDir) $sPath = $sNewDir EndIf Case $idbtnPrint $aFiles = _FileListToArray($sPath, "*.pdf", 1) ConsoleWrite($aFiles[0] & @TAB) If Not @error Then GUICtrlSetData($idProgress,0) For $i = 1 To $aFiles[0] $sFile = $sPath & "\" & $aFiles[$i] GUICtrlSetData($idlblProgress,$aFiles[$i]) $iPercent = 100 / $aFiles[0] * $i If FileGetSize($sFile) > 0 Then GUICtrlSetData($idlblProgress,$aFiles[$i] & " wird gedruckt") ShellExecuteWait($sFile, "", "", "print") FileDelete($sFile) ;diese Zeile nach Testen freigeben EndIf GUICtrlSetData($idProgress,$iPercent) Next EndIf Case $GUI_EVENT_CLOSE IniWrite($sIni, "Config", "Path", GUICtrlRead($idedtSave)) Exit EndSwitch WEnd
Und hier die kompilierte EXE: download.lima-city.de/motoernie/PDF_PrintDelete.exe Ich habe den normalen Adobe Reader 9 installiert und damit läuft es.
Und hier der Virencheck von PDF_PrintDelete.exe.
Beitrag zuletzt geändert: 9.8.2011 23:03:26 von autobert -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage