Переместить файлы старше 31 дня на другой диск
Function Move {
#Moves all files older than 31 days old from the Source folder to the Target
Get-Childitem -Path "E:\source" | Where-Object { $_.LastWriteTime -lt (get-date).AddDays(-31)} |
ForEach {
Move-Item $_.FullName -destination "F:\target" -force -ErrorAction:SilentlyContinue
}
}
в исходном каталоге находятся файлы старше 2-3 лет, но когда я запускаю скрипт, ничто не перемещается в целевой каталог?! в чем дело?
2 ответа
Я не знаю, имеет ли это большое значение, но не $. это должно быть $_.
Я попробовал этот скрипт, и он отлично работает для меня:
get-childitem -Path "E:\source" |
where-object {$_.LastWriteTime -lt (get-date).AddDays(-31)} |
move-item -destination "F:\target"
Обратите внимание, что вам не нужен цикл foreach, потому что объекты будут "переданы" в команду move-item
Также будьте в курсе скрытых файлов, попробуйте добавить -Force
в Get-ChildItem