【问题标题】:Remove-Item throws File not found删除项目抛出未找到文件
【发布时间】: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


    【解决方案1】:

    Remove-Item 需要 -Path 的字符串(请查看 Remove-Item -?),因此文件项将转换为字符串,这将只是文件名,而不是完整路径。

    使用

    $toDelete | foreach { Remove-Item $_.FullName }
    

    或更好

    $toDelete | Remove-Item 
    

    【讨论】:

    • 感谢您的回复。试过 $toDelete |除去项目 。 IT 没有显示任何错误,同时文件也没有被删除。文件还在那儿,他的 $toDelete | foreach { Remove-Item $_.FullName } 它仍然显示相同的错误。
    • @SubasriKalyankumar 试试-Verbose 开关,检查路径是否正确。还要检查你的代码,确保不要两次删除任何文件。
    • 谢谢。我还发现 $list = $(Get-ChildItem $directory -File | Sort-Object -Property LastWriteTime) 这一行没有返回任何内容。 $list 变量中没有保存任何内容。
    • @SubasriKalyankumar 您可能错过了-Recurse 开关? Get-ChildItem $directory -File -Recurse
    • 嗨,Marsze,这些文件现在被删除了。我已经对我的代码进行了修改。我现在面临另一个问题。如果你也能帮助我,那就太好了。我已将其作为一个单独的问题发布。 stackoverflow.com/questions/64574932/… 。我的问题是所有文件夹都被删除了。我计算可用空间的变量没有更新。非常感谢您的及时帮助。 :)
    猜你喜欢
    • 1970-01-01
    • 2015-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多