Nur eine bestimmte Menge an Dateien verschieben
Hallo
stehe aktuell vor dem Problem das ich einen Ordner mit mehreren 1000 pdf Dateien habe.
Diese möchte ich in einen anderen Ordner kopieren welcher von einem Programm überwacht wir.
Leider kann dieser nicht so viele auf einmal verarbeiten.
Gibt es eine Möglichkeit mit mov das immer nur 500 verschoben werden?
Danke
stehe aktuell vor dem Problem das ich einen Ordner mit mehreren 1000 pdf Dateien habe.
Diese möchte ich in einen anderen Ordner kopieren welcher von einem Programm überwacht wir.
Leider kann dieser nicht so viele auf einmal verarbeiten.
Gibt es eine Möglichkeit mit mov das immer nur 500 verschoben werden?
Danke
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 41231609644
Url: https://administrator.de/contentid/41231609644
Ausgedruckt am: 21.11.2024 um 17:11 Uhr
6 Kommentare
Neuester Kommentar
Moin,
wenn das Skript dauerhaft laufen soll, hast Du verschiedene Optionen.
Du könntest entweder eine while() Schleife bauen und das Skript einfach "hart beenden" wenn du es nicht mehr benötigst.
Ansonsten kannst Du auch einen Scheduled Task bauen, welche z.B. alle 5 Minuten das o.g. Skript ausführt.
Für das Erstellen eines Tasks hier mal schauen -> https://lazyadmin.nl/powershell/how-to-create-a-powershell-scheduled-tas ...
Was die Schnpisel von em-pie angeht:
PowerShell ISE öffnen (Ist auf jedem Windows vorinstalliert)
Code einfügen:
In dem Codebeispiel gehen wir davon aus, dass "C:\Temp\pdf" der Quellordner ist. "C:\Temp\pdf\dest" ist der Zielordner, wo die letzten 500 PDF Files verschoben werden.
Wenn Du das ganze nun als .ps1 speicherst, kannst du das Skript wie im Link erklärt in einem Scheduled Task platzieren und automatisiert ausführen lassen.
wenn das Skript dauerhaft laufen soll, hast Du verschiedene Optionen.
Du könntest entweder eine while() Schleife bauen und das Skript einfach "hart beenden" wenn du es nicht mehr benötigst.
Ansonsten kannst Du auch einen Scheduled Task bauen, welche z.B. alle 5 Minuten das o.g. Skript ausführt.
Für das Erstellen eines Tasks hier mal schauen -> https://lazyadmin.nl/powershell/how-to-create-a-powershell-scheduled-tas ...
Was die Schnpisel von em-pie angeht:
PowerShell ISE öffnen (Ist auf jedem Windows vorinstalliert)
Code einfügen:
Get-ChildItem -Path "C:\Temp\pdf" | Where-Object {$_.Extension -eq '.pdf'} | select -Last 500 | Move-Item -Destination "C:\Temp\pdf\dest"
In dem Codebeispiel gehen wir davon aus, dass "C:\Temp\pdf" der Quellordner ist. "C:\Temp\pdf\dest" ist der Zielordner, wo die letzten 500 PDF Files verschoben werden.
Wenn Du das ganze nun als .ps1 speicherst, kannst du das Skript wie im Link erklärt in einem Scheduled Task platzieren und automatisiert ausführen lassen.
Hi,
dann kontrolliere im angelegten Task den "Triggers" Tab und den dort hinterlegten Trigger.
In den erweiterten Einstellungen musst du "Repeat task every" benennen. Ich meine, die kleinste Einheit sind hier 5 Minuten.
Daneben ist noch ein Dropdown für die Dauer, da solltest du unendlich wählen, außer du weißt, dass du den Task nur sehr kurze Zeit benötigst.
Du solltest bei solchen Settings dann aber auch "Stop task if its run longer than" nutzen. Wähle hier einfach den kleinsten Wert.
Das beendet den Task automatisch nach der ausgewählten Zeit, sollte dieser sich z.B. aufhängen oder in einen nicht abfangbaren Fehler laufen.
dann kontrolliere im angelegten Task den "Triggers" Tab und den dort hinterlegten Trigger.
In den erweiterten Einstellungen musst du "Repeat task every" benennen. Ich meine, die kleinste Einheit sind hier 5 Minuten.
Daneben ist noch ein Dropdown für die Dauer, da solltest du unendlich wählen, außer du weißt, dass du den Task nur sehr kurze Zeit benötigst.
Du solltest bei solchen Settings dann aber auch "Stop task if its run longer than" nutzen. Wähle hier einfach den kleinsten Wert.
Das beendet den Task automatisch nach der ausgewählten Zeit, sollte dieser sich z.B. aufhängen oder in einen nicht abfangbaren Fehler laufen.
Moin,
Das ist pfui und nicht sonderlich performant. Hole niemals Daten, die Du nicht brauchst. Besser gleich beim Holen filtern:
Liebe Grüße
Erik
Zitat von @Cloudrakete:
PowerShell ISE öffnen (Ist auf jedem Windows vorinstalliert)
Code einfügen:
PowerShell ISE öffnen (Ist auf jedem Windows vorinstalliert)
Code einfügen:
Get-ChildItem -Path "C:\Temp\pdf" | Where-Object {$_.Extension -eq '.pdf'} | select -Last 500 | Move-Item -Destination "C:\Temp\pdf\dest"
Das ist pfui und nicht sonderlich performant. Hole niemals Daten, die Du nicht brauchst. Besser gleich beim Holen filtern:
Get-ChildItem -Path "C:\Temp\pdf" -filter *.pdf | select -Last 500 | Move-Item -Destination "C:\Temp\pdf\dest"
Liebe Grüße
Erik