0

I`m a beginner PowerShell user.

I need a powershell script. It must do:

In

\\routefolders\xxxxx
\\routefolders\jhon
\\routefolders\mike
\\routefolders\sandra
.
.
.
etc...

find files newer than 2 years

if exist some file in \routefolders\xxxxx "XXXXX" (searching in ALL SUBFOLDERS) do nothing

if there is no file newer than 2 years print in a file and delete the folder and subfolders \routefolders\xxxxx

The "XXXXX" folders are user-personal folders, if the user not use this i want to save a log and then to delete this folder

I have this, to delete a specific folder. I need some PS like this:

$RootDir="c:\temp\test"
$Users = Get-ChildItem $RootDir -Name
$FolderToDelete = "subcarpeta1"


foreach ($user in $Users){

  $n = $n +1
  write-host $n $user

  #Remove-Item -path $rootdir\$user\$FolderToDelete -Force -Recurse  
} 
Antonio
  • 1
  • 1
  • 2
    Possible duplicate of [How to recursively delete an entire directory with PowerShell 2.0?](https://stackoverflow.com/questions/1752677/how-to-recursively-delete-an-entire-directory-with-powershell-2-0) – LuFFy May 30 '17 at 13:07

1 Answers1

0

You could try something like this:

function Safely-Delete($fileItem)
{ 

    if($fileItem.FullName.StartsWith("your path"))
    {           
        Set-Location $fileItem.FullName
        Write-Host "Removing Item: $fileItem"
        Remove-Item $fileItem.FullName -Recurse 
    }
}

function Remove-File($path, $ageInYears)
{
    foreach($childItem in Get-ChildItem -Path $path)
    {
        if($childItem.Lastwritetime -lt (date).AddYears(-$ageInYears))
        {
            Safely-Delete $childItem
        }
    }
}

$age = 2
Remove-File "your path" $age
Ciaran Donoghue
  • 800
  • 3
  • 22
  • 46