Move Files older then 31 days to another drive

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

in the source directory are files that are older than 2-3 years, but when i run the script nothing moves to the target directory ?! whats wrong ?

Answers


I don't know if this makes much of a difference, but rather than $. it needs to be $_.

I tried this script and it works fine for me:

get-childitem -Path "E:\source" |
    where-object {$_.LastWriteTime -lt (get-date).AddDays(-31)} | 
    move-item -destination "F:\target"

Notice you don't need a foreach loop because the objects will be "piped" into the move-item command


Also be aware of hidden files, try adding -Force to Get-ChildItem


Need Your Help

How to enable Intellisense for JavaScript in Visual Studio Code

visual-studio-2015 intellisense visual-studio-code javascript-intellisense

I want to use VS Code to try out the examples of a JavaScript book, but there's no intellisense, or at least I don't know how to activate it.

Back button on Android Phones

android

A couple questions about the back button (as seen on the emulator)...