vollmilchheini
Goto Top

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:
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

Content-Key: 549715

Url: https://administrator.de/contentid/549715

Ausgedruckt am: 29.03.2024 um 02:03 Uhr

Mitglied: 143127
Lösung 143127 20.02.2020 aktualisiert um 14:28:42 Uhr
Goto Top
Foreach-Schleife überflüssig und Parameter vom Move-Befehl fehlerhaft.
Get-ChildItem -Path C:\Ordner1\*.pdf -File | ?{$_.LastWriteTime -le (Get-Date).AddMinutes(-15)} | Move-Item -Destination C:\Ordner2 -verbose

Gruß
Der Milka-Hasser
Mitglied: Vollmilchheini
Vollmilchheini 20.02.2020 um 14:24:02 Uhr
Goto Top
Hallo vibrations,

das funktioniert, bewirkt aber das Gegenteil.
Die Dateien sollen erst nach 15 Minuten kopiert werden, nicht ausschließlich in den ersten 15 Minuten.

Gruß
Vollmilchheini
Mitglied: Kraemer
Kraemer 20.02.2020 aktualisiert um 14:29:53 Uhr
Goto Top
Moin,

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.

die Vorgabe kommt von dir. Änder den vergleich und gut ist.

Eventuell ist dir das noch nicht aufgefallen:
(get-date).Ticks
637178057183582907

(get-date).addminutes(-15).Ticks
637178048322076674
Mitglied: 143127
143127 20.02.2020 aktualisiert um 14:31:09 Uhr
Goto Top
Zitat von @Vollmilchheini:
das funktioniert, bewirkt aber das Gegenteil.
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 ...
Mitglied: Vollmilchheini
Vollmilchheini 20.02.2020 um 14:44:04 Uhr
Goto Top
Danke.

Ich kenne mich mit Powershell kaum aus.. deswegen wusste ich nicht, was man da austauschen muss. Vielen Dank trotzdem!
Mitglied: Kraemer
Kraemer 20.02.2020 um 14:48:30 Uhr
Goto Top
Zitat von @Vollmilchheini:

Danke.

Ich kenne mich mit Powershell kaum aus..
büdde
https://www.windowspro.de/script/vergleichsoperatoren-powershell-eq-lt-g ...