Skip to main content

PowerShell Move or copy files with specific date

Below is a simple PowerShell code that will move, list or copy files on a specific date.

Assign or change specific date on $xCompareDate to any desired date.

Of course, PowerShell has option also to move, list or copy files older or greater than x days.

But if there is a need to have a specific date, this script will come handy.

#===============

$xfile = Get-ChildItem  -Path d:\Logs -File |

#Get the full path, file name and the creation time of the file
Select-Object FullName, CreationTime |
Where-Object {
      #convert the creation time to string to compare dates
      $xfile = $_.CreationTime.Date.Month.ToString()  + "/" + ($_.CreationTime).Date.day.ToString() + "/" +  ($_.CreationTime).Date.year.ToString()
     
     
      $xCompareDate=  "10/21/2014"

    #conditional statement if files are equal to the date compared
    #then do something if the same 
    if ($xfile -eq $xCompareDate) {
     #Display or list the full path and the filename
     #for files that will match the date specified on xCompareDate variable
     write-host $_.FullName

     #or move the files that match with the date compared
     #move-item $_.FullName D:\ArchiveFolder

     #to copy files
     #copy-item $_.FullName D:\Any_Path_Location
    }
}

#===============

To move, list or copy files for a whole month.

For example need to copy the files for the whole October.

A for loop on the $xCompareDate, should do the trick.

Here's the revised code snippet:

#===============

$xfile = Get-ChildItem  -Path d:\Logs -File |

#Get the full path, file name and the creation time of the file
Select-Object FullName, CreationTime |
Where-Object {
      #convert the creation time to string to compare dates
      $xfile = $_.CreationTime.Date.Month.ToString()  + "/" + ($_.CreationTime).Date.day.ToString() + "/" +  ($_.CreationTime).Date.year.ToString()
     

    #for loop to increment the date up to the 30th day
  $iDate ="30"
      for ($i=1; $i-le $iDate; $i++)
      {

      $varDate=  "10/"+$i+"/2014" #$a.ToString().Substring(0,10)
     

     #optional just to check the for loop output
     write-host $varDate  

    #conditional statement if files are equal to the date compared
    #then do something if the same 
    if ($xfile -eq $varDate) {
     #Display or list the full path and the filename
     #for files that will match the date specified on xCompareDate variable
     write-host $_.FullName

     #or move the files that match with the date compared
     #move-item $_.FullName D:\ArchiveFolder

     #to copy files
     #copy-item $_.FullName D:\Any_Path_Location
    }
  }


}

#===============



Uncomment the line to execute the command or cmdlet, if need to use the script for copying uncomment the copy-item.


Cheers!! Hope it helps!!

=================
Catholic Rosary Guide  for Android:
Pray the Rosary every day, countless blessings will be showered upon your life if you recite the Rosary faithfully. 
https://play.google.com/store/apps/details?id=com.myrosaryapp

http://quickbytesstuff.blogspot.sg/2014/09/how-to-recite-rosary.html

Divine Mercy Chaplet Guide (A Powerful prayer) BFF = Be Filled Faith:

Comments