首页 > 解决方案 > A Get-ChildItem 内的 Get-ChildItem

问题描述

我对正在编写的脚本有疑问。我需要一个可以在特定文件夹(在本例中为 WRA)中找到所有文件夹的脚本,但我也想在 WRA 中找到子文件夹 例如:\Server01\WRA 包含 100 个文件夹 \Server01\WRA\Folder 1 \ Server01\WRA\文件夹 2 ... ...

我想查看“文件夹 1”并获取“文件夹 1”中文件夹的报告并找到 30 天以上的文件夹,这可以通过

Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-30))}

这是我到目前为止所拥有的

$FolderNames = Get-ChildItem "\\Server01\WRA\" -Directory | 
    Select-Object Name, LastWriteTime

$FolderNames

谢谢你的帮助

标签: powershell

解决方案


你可以使用这个:

Get-ChildItem "\\Server01\WRA\" -Directory |
Get-ChildItem -Directory |
Where-Object -Property LastWriteTime -LT ([datetime]::Now).AddDays(-30) |
Select-Object Name, LastWriteTime

编辑

$directories = Get-ChildItem "\\Server01\WRA\" -Directory
$targetDate = ([datetime]::Now).AddDays(-30)

foreach($parentDir in $directories)
{
    $subFolders = Get-ChildItem $parentDir -Directory |
    Where-Object -Property LastWriteTime -LT $targetDate
    
    if($subFolders)
    {
        "Parent Directory: {0}" -f $parentDir.FullName
    }

    foreach($childDir in $subFolders)
    {
        "Parent SubFolder: {0}" -f $childDir.FullName

        $childDir | Select-Object Name, LastWriteTime | Out-String
    }
}

推荐阅读