delete folder and subfolder if is not used (Powershell)

拈花ヽ惹草 提交于 2020-01-17 06:45:12

问题


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  
} 

回答1:


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


来源:https://stackoverflow.com/questions/44262642/delete-folder-and-subfolder-if-is-not-used-powershell

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!