【发布时间】:2021-02-09 23:05:01
【问题描述】:
我是 power shell 脚本的新手。我需要一个 Power shell 脚本来检查可用磁盘空间并从文件夹中删除一些旧的子文件夹,直到可用空间达到阈值水平。
在“D:\InstallApp\Backup”这个路径中,我有多个文件夹,每个文件夹都以日期作为文件夹名称。我必须删除一些旧的备份文件夹以使可用空间达到阈值水平。谢谢 前进:)
$driveLetter = "D"
$directory = "D:\InstallApp\Backup"
$desiredGiB = 266
$desiredBytes = $desiredGiB * 1073741824
Get-PSDrive $driveLetter | ForEach-Object { $free = $_.Free }
$list = $(Get-ChildItem $directory -File | Sort-Object -Property LastWriteTime)
#Write-Output $list
if ($free -lt $desiredBytes) {
$toDelete = @()
$needed = $desiredBytes - $free
$spaceToFree = 0
foreach ($item in $list) {
$toDelete += $item
#write-Output $toDelete
$spaceToFree += $item.Length
#write-Output $spaceToFree
if ($spaceToFree -ge $needed) {
break
}
}
$toDelete | ForEach-Object {
## Remove -WhatIf when you are comfortable that this is working as intended
Remove-Item $toDelete
}
}
除删除步骤外,所有步骤都可以正常工作。 Remove-Item 抛出文件未找到异常
【问题讨论】:
标签: powershell powershell-2.0 powershell-3.0