Windows Poweshell Drucken-Verschieben von Dateien
Hallo Zusammen,
ich habe eine kurze und vermutlich für euch eine einfache Frage.
Ich möchte per Powershell X Dateien in einem Ordner Drucken und NACH dem Druck jeder einzelnen Datei die Datei verschieben.
Hintergrund wir schreiben PDF's in einen Ordner "Test"
Der Zeitpunkt wann die PDF's dort gespeichert werden ist nicht definiert - es kann also durchaus sein, dass neue PDF's hinzukommen in dem Moment wann das Script ausgeführt wird.)
Da ich vermeiden möchte, dass Dateien nicht ungedruckt verschoben werden würde ich das ganze gerne wie folgt ablaufen lassen.
Das Script geht in den Ordner in dem die PDF's liegen: C:\Test
Sucht dort nach der ersten PDF Datei und druckt diese auf dem Standard Drucker:
Sobald die Datei gedruckt ist verschiebt er sie nach C:\Test\Archiv
Und sucht nach der nächste Datei macht dort das gleiche ....
Solange bis er nichts mehr findet.
Das ist der Befehl der alle Dateien die er finde druckt:
Dir "C:\Test\*.pdf" | Foreach-Object {Start-Process -FilePath $_.FullName -Verb Print}
Vermutlich wird man eine Schleife starten die den Ersten "Eintrag" in eine variable einließt - druckt und verschiebt aber irgendwie bekomme ich das nicht hin :/
Ich muss auch ehrlicherweise gestehen das ich nicht gerade Vertraut bin mit Powershell.
Für jegliche Tipps und Hilfestellungen vielleicht sogar ein kleines Script wäre ich euch überaus dankbar.
Beste Grüße
ich habe eine kurze und vermutlich für euch eine einfache Frage.
Ich möchte per Powershell X Dateien in einem Ordner Drucken und NACH dem Druck jeder einzelnen Datei die Datei verschieben.
Hintergrund wir schreiben PDF's in einen Ordner "Test"
Der Zeitpunkt wann die PDF's dort gespeichert werden ist nicht definiert - es kann also durchaus sein, dass neue PDF's hinzukommen in dem Moment wann das Script ausgeführt wird.)
Da ich vermeiden möchte, dass Dateien nicht ungedruckt verschoben werden würde ich das ganze gerne wie folgt ablaufen lassen.
Das Script geht in den Ordner in dem die PDF's liegen: C:\Test
Sucht dort nach der ersten PDF Datei und druckt diese auf dem Standard Drucker:
Sobald die Datei gedruckt ist verschiebt er sie nach C:\Test\Archiv
Und sucht nach der nächste Datei macht dort das gleiche ....
Solange bis er nichts mehr findet.
Das ist der Befehl der alle Dateien die er finde druckt:
Dir "C:\Test\*.pdf" | Foreach-Object {Start-Process -FilePath $_.FullName -Verb Print}
Vermutlich wird man eine Schleife starten die den Ersten "Eintrag" in eine variable einließt - druckt und verschiebt aber irgendwie bekomme ich das nicht hin :/
Ich muss auch ehrlicherweise gestehen das ich nicht gerade Vertraut bin mit Powershell.
Für jegliche Tipps und Hilfestellungen vielleicht sogar ein kleines Script wäre ich euch überaus dankbar.
Beste Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 288216
Url: https://administrator.de/contentid/288216
Ausgedruckt am: 25.11.2024 um 12:11 Uhr
5 Kommentare
Neuester Kommentar
Keine Ahnung was du damit meinst und was bei dir nicht geht ohne Fehlermeldung ...
ersetzen durch ein
Und was muss ich tun wenn ich anstatt dem löschen die Dateien verschieben möchte ?
Dasdel $_ -Force -EV err -EA SilentlyContinue
move-item $_.FullName -destination 'C:\deinzielpfad' -EV err -EA SilentlyContinue
Entweder ich stehe auf dem Schlauch oder :/
... du hast die Hose voll
den sleep-Wert musst du wahrscheinlich an den Speed eures System anpassen...je nachdem wie schnell euer Programm den Druck anstößt.
gci "C:\Ordner\*.pdf" | %{
$pdfApp = (start-process $_.FullName -Verb "print" -PassThru).ProcessName
sleep(3)
while($true){
move-item $_.FullName -destination 'C:\deinzielpfad' -EV err -EA SilentlyContinue
If($err){sleep(1)}else{break}
}
}
get-process $pdfApp -ErrorAction SilentlyContinue | Stop-Process