用命令行查看win11的文件夹大小并且排序

# 获取当前文件夹下的所有子文件夹
$folders = Get-ChildItem -Directory

# 创建一个空数组来存储结果
$results = @()

# 遍历每个文件夹并计算大小
foreach ($folder in $folders) {
    $size = (Get-ChildItem $folder.FullName -Recurse -File | Measure-Object -Property Length -Sum).Sum
    $results += [PSCustomObject]@{
        Name = $folder.Name
        Size = $size
        SizeGB = [math]::Round($size / 1GB, 2)
    }
}

# 按大小降序排序并选择前10个
$topFolders = $results | Sort-Object Size -Descending | Select-Object -First 10

# 显示结果
Write-Host "Top 10 folders by size:`n"
$topFolders | Format-Table -AutoSize -Property Name, @{Name="Size (GB)"; Expression={$_.SizeGB}}

# 询问是否显示所有文件夹的大小
$showAll = Read-Host "Do you want to see the size of all folders? (Y/N)"

if ($showAll -eq "Y" -or $showAll -eq "y") {
    Write-Host "`nAll folders:`n"
    $results | Sort-Object Size -Descending | Format-Table -AutoSize -Property Name, @{Name="Size (GB)"; Expression={$_.SizeGB}}
}

这个代码的话效率慢一点但是不会出红 是因为他递归了所有文件夹下的子文件
而下面这个会红 因为他用了一个属性 这个属性是只有文件夹所拥有的
 

# 获取当前文件夹下的所有子文件夹
$folders = Get-ChildItem -Directory

# 创建一个空数组来存储结果
$results = @()

# 遍历每个文件夹并计算大小
foreach ($folder in $folders) {
    $size = (Get-ChildItem $folder.FullName -Recurse | Measure-Object -Property Length -Sum).Sum
    $results += [PSCustomObject]@{
        Name = $folder.Name
        Size = $size
        SizeGB = [math]::Round($size / 1GB, 2)
    }
}

# 按大小降序排序并选择前10个
$topFolders = $results | Sort-Object Size -Descending | Select-Object -First 10

# 显示结果
Write-Host "Top 10 folders by size:`n"
$topFolders | Format-Table -AutoSize -Property Name, @{Name="Size (GB)"; Expression={$_.SizeGB}}

# 询问是否显示所有文件夹的大小
$showAll = Read-Host "Do you want to see the size of all folders? (Y/N)"

if ($showAll -eq "Y" -or $showAll -eq "y") {
    Write-Host "`nAll folders:`n"
    $results | Sort-Object Size -Descending | Format-Table -AutoSize -Property Name, @{Name="Size (GB)"; Expression={$_.SizeGB}}
}

我们需要把这个代码放在一个.ps1的文件中 然后在powershell里,用类似以下语句执行

.\folder_size.ps1

访问权限不足 通常是c的权限不足 需要先执行

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值