Powershell LastWriteTime funktioniert nicht
Hallo,
das Programm soll Dateien, wenn Sie länger als 15 min nicht mehr bearbeitet wurden, von a nach b verschieben. So der Plan. Leider klappt das nicht, das Programm läuft durch aber es wird nichts kopiert. Kann mir einer helfen?
Code:
Des weiteren würde ich mir dann gerne im Log anzeigen lassen, ob denn nun was kopiert wurde oder nicht. Wie mache ich das am besten?
Gruß
Vollmilchheini
das Programm soll Dateien, wenn Sie länger als 15 min nicht mehr bearbeitet wurden, von a nach b verschieben. So der Plan. Leider klappt das nicht, das Programm läuft durch aber es wird nichts kopiert. Kann mir einer helfen?
Code:
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
function log($string)
{
write-output $string | out-file -Filepath $logfile -append
}
$logfile = "C:\_Logs\"+$RequestNumber+"_$(get-date -Format dd.MM.yyyy_hh-mm-ss).txt"
Start-Transcript C:\_Logs\$(get-date -Format dd.MM.yyyy_hh-mm-ss).txt
Get-ChildItem -Path C:\Ordner1\*.pdf -File | ? {$_.LastWriteTime -gt (Get-Date).AddMinutes(-15)} | % {
Move-Item -Path C:\Ornder1\*.pdf C:\Ordner2\
}
Stop-Transcript
Des weiteren würde ich mir dann gerne im Log anzeigen lassen, ob denn nun was kopiert wurde oder nicht. Wie mache ich das am besten?
Gruß
Vollmilchheini
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 549715
Url: https://administrator.de/forum/powershell-lastwritetime-funktioniert-nicht-549715.html
Ausgedruckt am: 11.01.2025 um 20:01 Uhr
6 Kommentare
Neuester Kommentar
Foreach-Schleife überflüssig und Parameter vom Move-Befehl fehlerhaft.
Gruß
Der Milka-Hasser
1
Get-ChildItem -Path C:\Ordner1\*.pdf -File | ?{$_.LastWriteTime -le (Get-Date).AddMinutes(-15)} | Move-Item -Destination C:\Ordner2 -verbose
Gruß
Der Milka-Hasser
Moin,
die Vorgabe kommt von dir. Änder den vergleich und gut ist.
Eventuell ist dir das noch nicht aufgefallen:
Zitat von @Vollmilchheini:
das funktioniert, bewirkt aber das Gegenteil.
Die Dateien sollen erst nach 15 Minuten kopiert werden, nicht ausschließlich in den ersten 15 Minuten.
das funktioniert, bewirkt aber das Gegenteil.
Die Dateien sollen erst nach 15 Minuten kopiert werden, nicht ausschließlich in den ersten 15 Minuten.
die Vorgabe kommt von dir. Änder den vergleich und gut ist.
Eventuell ist dir das noch nicht aufgefallen:
1
2
3
4
5
2
3
4
5
(get-date).Ticks
637178057183582907
(get-date).addminutes(-15).Ticks
637178048322076674
Kommt vom copy n Paste ...
Die Dateien sollen erst nach 15 Minuten kopiert werden, nicht ausschließlich in den ersten 15 Minuten.
Ein fach das -gt durch -le austauschen, s.o.. Man kann sich aber auch echt anstellen ...