Batch Datei um jpg in einem bestimmten Ordner ausdrucken

Dooly

Newbie
Registriert
Okt. 2022
Beiträge
1
Hallo zusammen, bin gerade etwas am verzweifeln,
ich kenne mich nicht so gut mit dem programieren und dem schreiben von Batch dateien aus aber ich veruche jetzt schon seit Stunden eine Batch Datei für folgendes zu schreiben.
Ich möchte aus einem Ordner "D:\(a) Temp Verzeichnis" eine jpg Datei mit üblichen Windows Bordmitteln wie zb dem Windows Foto Viewer oder Paint drucken. Der Drucker ist ein Canon MX920.

Vielleicht hat auch jemand eine Lösung per Batch Datei direkt ein Düsentestmuster ausdrucken mit dem Canon.

Habe bisher folgendes probiert:
@Echo off
:begin
for /f %%f in ('dir /b D:\(a) Temp Verzeichnis*.jpg') do rundll32.exe C:\WINDOWS\system32\shimgvw.dll,ImageView_PrintTo /pt "D:\(a) Temp Verzeichnis%%f" "Canon MX920 series Printer"

da passiert aber nichts ohne Fehlermeldung

und

@Echo off
set folder="D:\(a) Temp Verzeichnis"
for /r %folder% %%a in (*.jpg) do (
start /b "Print" "C:\Windows\system32\mspaint.exe" /mFilePrintDefault "%%a"
)
 
Zuletzt bearbeitet:
Dooly schrieb:
Ich möchte aus einem Ordner "D:\(a) Temp Verzeichnis" eine jpg Datei mit üblichen Windows Bordmitteln wie zb dem Windows Foto Viewer oder Paint drucken.

gibt es dazu einen Hintergrund warum per Batch ?

alle Dateien markieren -> Rechtsklick und Drucken ist nicht möglich?
 
Dooly schrieb:
for /f %%f in ('dir /b D:\(a) Temp Verzeichnis*.jpg')
Ich habe von Batch über haupt kein Plan, bin in BASH zuhause.

Aber müsste im Zitat nicht noch ein Bachslash vor das *.jpg?

Das Foto heißt ja nicht "Temp Verzeichnisxyz.jpg" im Laufwerk "D:"
 
Batch ist halt auch einfach alt und Kacke.

Hab mal flott recherchiert, mit Powershell kann man das so umsetzen, wie hier beschrieben:
https://techexpert.tips/de/powershell-de/powershell-drucken-einer-datei/

Ich hab's mal kurz damit getestet:
Start-Process -filePath "C:\Users\<USER>\Pictures\2020-10-26 08.13.25.jpg" -verb print

Damit öffnet sich dann der Druckdialog der Foto Software. Dadurch dass man dem Befehl hier nicht die Print Parameter (Größe, Farbe/SW, usw.) mitgeben kann, muss man dies dann im Druckdialog machen. Aber vielleicht gibt's da noch andere Wege das zu automatisieren
 
Art Vandelay schrieb:
Ich hab's mal kurz damit getestet:

Das Problem wird hier nicht der Print befehl ansich sein, denn der wird funktionieren.
Das Problem hier ist die Schleife in der die Dateiname der Bilder erfasst werden und dann an den Printbefehl übergeben werden müssen.
Und das ist in Powershell genauso bescheiden wie in der Batch Programmierung :D

Einfacher ist es wenn man das nicht automatisiert machen will, sondern es sich nur erleichten möchte, in die ordner zu gehen, bei suchen *.jpg einzugeben, alles zu markieren und dann im Kontexmenü auf drucken zu gehen.
 
Kann durchaus funktionieren ;). Nur ist der Code etwas wirr. Die Mischung aus beiden machts dann. Allerdings wird Vollbild ohne Optimierungen gedruckt, die Eigenschaften des Druckers bestimmen den Output.

Beispiel mit korrekten Anführungszeichen (und Anzeige der Dateipfade):
Code:
@Echo off
setlocal EnableExtensions
setlocal EnableDelayedExpansion
set "folder=D:\(a) Temp Verzeichnis"
for /r "%folder%" %%a in (*.jpg) do (
    echo %%a
    start /wait rundll32.exe %windir%\system32\shimgvw.dll,ImageView_PrintTo /pt "%%a" "Canon MX920 series Printer"
)
pause
endlocal
exit

Gerade getestet. Die Dateien landen in der Warteschlange und werden gedruckt, wenn der Name des angesprochenen Druckers korrekt ist. Bei mir: "OKI B430(PS) (Kopie 1)". Ist unter 'Geräte und Drucker' einsehbar.

@Art Vandelay CMD, nicht Batch. Ist seit den Erweiterungen ein äußerst mächtiges Werkzeug und noch lange nicht am Ende, auch wenn MS das gerne möchte.
 
Zurück
Oben